Реагирует на собственную ошибку загрузки звука.com.google.android.exoplayer2.bh $ b: сбой инициализации AudioTrack: 0, конфигурация (44100, 4, 22050) - PullRequest
0 голосов
/ 25 сентября 2019

В моем приложении 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.

От нуба, который хорошо и по-настоящему застрял!Любая помощь приветствуется!

...