Используя аудио API Expo, я столкнулся с проблемой воспроизведения аудиофайла с URL удаленного сервера.Во время устранения неполадок я вручную скопировал файл и протестировал require (local_file_path), и это работало нормально, поэтому проблема как-то связана с удаленным сервером.
Соответствующий собственный код ниже:
const playbackObject = await Audio.Sound.create(
// require('../assets/audio/recording-1234.caf'),
{ uri: 'http://xx.x.x.xxx:5000/api/file/recording-1234.caf'},
{ shouldPlay: true }
);
MyСервер является узлом JS / Express API.Конечная точка просто находит правильный файл в файловой системе локального сервера и возвращает ответ:
app.get('/api/file/:filename', function (req, res) {
const fileName = req.params.filename
const src = fs.createReadStream('./files/audio/' + fileName);
res.setHeader( 'content-type', 'audio/x-caf')
src.pipe(res);
//'audio/x-caf'
})
Все мои аудиофайлы являются файлами .caf, так как они происходят из записи на устройстве.Я могу видеть из журналов сервера, через которые проходит GET-запрос.Мне кажется, мне просто не нравится мой ответ?
Я получаю сообщение об ошибке:
YellowBox.js:80 Possible Unhandled Promise Rejection (id: 0):
Error: The server is not correctly configured. - The AVPlayerItem instance has failed with the error code -11850 and domain "AVFoundationErrorDomain".
Error: The server is not correctly configured. - The AVPlayerItem instance has failed with the error code -11850 and domain "AVFoundationErrorDomain".
at loadError (blob:http://localhost:19001/d3b3b86a-aac6-4b17-9f10-57945e3b1958:104934:28)
at MessageQueue.__invokeCallback (blob:http://localhost:19001/d3b3b86a-aac6-4b17-9f10-57945e3b1958:2800:18)
at blob:http://localhost:19001/d3b3b86a-aac6-4b17-9f10-57945e3b1958:2545:18
at MessageQueue.__guardSafe (blob:http://localhost:19001/d3b3b86a-aac6-4b17-9f10-57945e3b1958:2713:11)
at MessageQueue.invokeCallbackAndReturnFlushedQueue (blob:http://localhost:19001/d3b3b86a-aac6-4b17-9f10-57945e3b1958:2544:14)
at http://localhost:19001/debugger-ui/debuggerWorker.js:70:58
Неправильно ли настроен мой сервер?Могу ли я не передавать файлы?В документации Expo нет никакой информации о том, какой тип ответа HTTP он ожидает, и я не уверен, как решить эту проблему.
Любая помощь очень ценится!