В моем приложении React Native есть несколько звуковых файлов, которые я могу воспроизводить без проблем в 90% случаев.Однако иногда вместо воспроизведения звукового файла я получаю следующую ошибку:
com.google.android.exoplayer2.b.h$b: AudioTrack init failed: 0, Config(44100, 4, 22050)
- node_modules\react-native\Libraries\BatchedBridge\NativeModules.js:104:30 in <unknown>
- node_modules\react-native\Libraries\BatchedBridge\MessageQueue.js:414:12 in MessageQueue.__invokeCallback
- node_modules\react-native\Libraries\BatchedBridge\MessageQueue.js:127:11 in <unknown>
- node_modules\react-native\Libraries\BatchedBridge\MessageQueue.js:314:8 in MessageQueue.__guard
- node_modules\react-native\Libraries\BatchedBridge\MessageQueue.js:126:9 in MessageQueue.invokeCallbackAndReturnFlushedQueue
* http://localhost:19001/debugger-ui/debuggerWorker.js:80:58 in <unknown>
, за которой следует другая ошибка от expo-av, так как не удалось загрузить звук:
Cannot complete operation because sound is not loaded.
- node_modules\expo-av\build\Audio\Sound.js:63:18 in Sound._performOperationAndHandleStatusAsync$
- node_modules\regenerator-runtime\runtime.js:45:39 in tryCatch
- ... 9 more stack frames from framework internals
Ошибка не относится к файлу.Иногда файл будет работать, а иногда нет.После сбоя файла я получаю ошибки при попытке загрузить все остальные файлы:
[Unhandled promise rejection: Error: Player does not exist.]
- node_modules\react-native\Libraries\BatchedBridge\NativeModules.js:155:31 in createErrorFromErrorData
- node_modules\react-native\Libraries\BatchedBridge\NativeModules.js:104:30 in <unknown>
- node_modules\react-native\Libraries\BatchedBridge\MessageQueue.js:414:12 in MessageQueue.__invokeCallback
- node_modules\react-native\Libraries\BatchedBridge\MessageQueue.js:127:11 in <unknown>
- node_modules\react-native\Libraries\BatchedBridge\MessageQueue.js:314:8 in MessageQueue.__guard
- node_modules\react-native\Libraries\BatchedBridge\MessageQueue.js:126:9 in MessageQueue.invokeCallbackAndReturnFlushedQueue
* http://localhost:19001/debugger-ui/debuggerWorker.js:80:58 in <unknown>
Обновление приложения также не исправляет это.Я должен закрыть приложение и снова открыть его.Я быстро посмотрел в node_modules \ реагировать-родной \ Libraries \ BatchedBridge \ NativeModules, и там, кажется, много ошибок / предупреждений - это нормально?Кроме того, я воспроизводю звук, используя следующее:
Audio.setIsEnabledAsync(true);
const soundObject = new Audio.Sound();
firebase.storage().ref().child(this.props.wave.audio).getDownloadURL()
.then((url) => {
soundObject.loadAsync({ uri: url })
.catch(err => { console.log(err) })
.then(() => {
this.setState({ curRecording: soundObject });
soundObject.playAsync()
.catch(err => { console.log(err) })
.then(() => {
this.setState({ actualPlaying: true });
this.props.setSound(soundObject);
//this.updatePlays();
soundObject.setOnPlaybackStatusUpdate((playbackStatus) => {
if (playbackStatus.didJustFinish) {
this.setState({ playing: false, actualPlaying: false });
this.props.changeNum("plays", 1, this.props.wave.key, "wave");
this.props.isNotPlaying();
this.props.next();
this.props.setSound("");
let data = { userid: this.props.ownUserid, wave: this.props.wave.key, type2: "wave" };
firebase.database().ref('/Requests/Plays').push(data).catch(err => { console.log(err) });
}
})
});
})
});
Кто-нибудь знает, как это исправить / почему это происходит?Я использую expo-av для звука и тестирую приложение через expo на физическом пикселе 2.
От нуба, который хорошо и по-настоящему застрял!Любая помощь приветствуется!