Скачивание mp3 файла с помощью RN-FETCH-BLOB

Я пытаюсь загрузить mp3-файл с помощью rn-fetch-blob в ios по ссылке https://www.myinstants.com/media/sounds/anime-wow-sound-effect-mp3cut.mp3. Затем я поделюсь этим файлом с помощью response-native-share, но я не могу получить правильный файл, как будто это не mp3-файл. Это файл, который WhatsApp не может открыть.

RNFetchBlob
  .config({
    fileCache: true,
    appendExt : 'mp3'
  })
  .fetch('GET', url, {
    //some headers ..
  })
  .then((res) => {
    // the temp file path
    console.log('The file saved to ', res.path())
    const shareOptions = {
      title: 'Share via',
      message: 'Do not miss to share meme sounds',
      url: 'file://' + res.path(),
    };
    Share.share(shareOptions)
      .then((res) => console.log(res))
      .catch((err) => err && console.log(err))
  })

Загруженный файл возвращает такой путь: / var / mobile / Containers / Data / Application / BC8BC14B-FE8B-4E2C-ACA4-799270D8972B / Documents / RNFetchBlob_tmp / RNFetchBlobTmp_m6vz8itit4jxuxpb8tabrm

Если я добавлю appendExt: 'mp3', он вернет что-то вроде этого: /var/mobile/Containers/Data/Application/BC8BC14B-FE8B-4E2C-ACA4-799270D8972B/Documents/RNFetchBlob_tmp/RNFetchBlobTmp_m6vz8itit4jxuxpb8tab

Чем, если я поделюсь им в whatapp, я получил эти файлы вроде вещей. Это не mp3 файл. Это даже не файл не могу открыть. Вопрос в том, правильно ли я скачиваю mp3 файл в ios. Если да, то почему я не вижу путь, заканчивающийся расширением .mp3? Или я просто неправильно использую библиотеку Share, пожалуйста, просто просветите меня. введите здесь описание изображения

введите здесь описание изображения


person Selim Mıdıkoğlu    schedule 16.02.2020    source источник


Ответы (1)


Я решил проблему. Пути RN-Fetch-Blob плохо подходят для iOS. Лучше указать такой путь.

let path = RNFetchBlob.fs.dirs.DocumentDir

и передайте файл, который хотите загрузить, в конец пути в RNFetchBlob.config, как это.

 RNFetchBlob
  .config({
    fileCache: true,
    path: path + '/sound.mp3',

  })

Чем если вы хотите поделиться файлом со случайными приложениями. Используйте параметр url библиотеки react-native-share следующим образом.

const shareOptions = {
      subject: 'Music',
      title: '',
      message: 'Do not miss to share meme sounds',
      url:  res.path(),
    };

И url: 'file:// + res.path(), и url: res.path() будут правильно работать в Android. Но в моем случае объявление URL без file:// работало.

person Selim Mıdıkoğlu    schedule 17.02.2020