Загрузка mp3 файла с помощью RN-FETCH-BLOB - PullRequest
1 голос
/ 17 февраля 2020

Я пытаюсь скачать mp3-файл с помощью rn-fetch-blob в ios по ссылке https://www.myinstants.com/media/sounds/anime-wow-sound-effect-mp3cut.mp3. Чем я поделюсь этим файлом с реагировать-родной-доля, но я не могу получить правильный файл, как это не 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-4E2 C -ACA4-799270D8972B / Documents / RNFetchBlob_tmp / RNFetchBlobTmp_mjtxit 1008mtaxit 1008mtaxit 1008mtxp8 *

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

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

enter image description here

Ответы [ 2 ]

0 голосов
/ 20 февраля 2020

Большое спасибо, Селим Мидикоглу. Благодаря вам я могу реализовать функцию загрузки mp3

0 голосов
/ 17 февраля 2020

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

let path = RNFetchBlob.fs.dirs.DocumentDir

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

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

  })

Чем, если вы хотите поделиться файлом со случайными приложениями. Используйте параметр url библиотеки Resact-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:// работало.

...