Скачивание 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_m6vz8itit4jxuxpb8tabrm.mp3
Чем, если я поделюсь им в whatapp, я получил эти файлы вроде вещей. Это не mp3 файл. Это даже не файл не могу открыть. Вопрос в том, правильно ли я скачиваю mp3 файл в ios. Если да, то почему я не вижу путь, заканчивающийся расширением.mp3? Или я просто неправильно использую библиотеку Share, пожалуйста, просто просветите меня.
2 ответа
Я решил проблему. Пути 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://
работал.
Большое спасибо, Селим Мидикоглу. Благодаря вам я могу реализовать функцию загрузки mp3