Estoy construyendo un reproductor de audio como una aplicación móvil usando React Native y con el objetivo de lograr una transición perfecta, es decir, audio al siguiente audio sin ningún silencio, cuando se reproduce en bucle. Hay un latido del corazón, un salto de medio segundo entre cada canción y cuando se reproduce en bucle cualquier canción que no hay sonido.
Actualmente usando el reproductor Expo Audio: https://docs.expo.dev/versions/latest/sdk/audio/ También probé: https://www.npmjs.com/package/react-native-vlc-media-player
Mi Audioprovider.js donde se encuentra la lógica se ve así:
onPlaybackStatusUpdate = async playbackStatus => { if (playbackStatus.isLoaded && playbackStatus.isPlaying) { this.updateState(this, { playbackPosition: playbackStatus.positionMillis, playbackDuration: playbackStatus.durationMillis, }); } if (playbackStatus.isLoaded && !playbackStatus.isPlaying) { storeAudioForNextOpening( this.state.currentAudio, this.state.currentAudioIndex, playbackStatus.positionMillis ); } let durationSeconds = playbackStatus.durationMillis/1000; let positionSeconds = playbackStatus.positionMillis/1000; if (playbackStatus.didJustFinish || (parseInt(durationSeconds)-2 === parseInt(positionSeconds))) { if (this.state.isPlayListRunning) { let audio; const indexOnPlayList = this.state.activePlayList.audios.findIndex( ({ id }) => id === this.state.currentAudio.id ); const nextIndex = this.state.isLoop ? indexOnPlayList : indexOnPlayList + 1; audio = this.state.activePlayList.audios[nextIndex]; if (!audio) audio = this.state.activePlayList.audios[0]; const indexOnAllList = this.state.audioFiles.findIndex( ({ id }) => id === audio.id ); const status = await playNext(this.state.playbackObj, audio.url); return this.updateState(this, { soundObj: status, isPlaying: true, currentAudio: audio, currentAudioIndex: indexOnAllList, }); }¿Algunas ideas? ¿Es posible?