Javascript 如何在打开shuffle的情况下跳到下一首歌?自然反应
我正在制作一个音乐播放器,我遇到了一个问题,想不出办法解决这个问题,我有洗牌模式,当洗牌打开时,我按下下一首歌,它进入下一首歌,当曲目结束时,它验证洗牌是否打开,如果是,重复曲目,如果不是,下一首歌,这里的问题是当我从队列中选择另一首曲目时,因为当我这样做时,监听器将执行,再次验证是否打开了shuffle,是否关闭了next,从而导致循环,我只能按next进入下一首歌曲,而不能从队列中进入,代码如下:Javascript 如何在打开shuffle的情况下跳到下一首歌?自然反应,javascript,react-native,Javascript,React Native,我正在制作一个音乐播放器,我遇到了一个问题,想不出办法解决这个问题,我有洗牌模式,当洗牌打开时,我按下下一首歌,它进入下一首歌,当曲目结束时,它验证洗牌是否打开,如果是,重复曲目,如果不是,下一首歌,这里的问题是当我从队列中选择另一首曲目时,因为当我这样做时,监听器将执行,再次验证是否打开了shuffle,是否关闭了next,从而导致循环,我只能按next进入下一首歌曲,而不能从队列中进入,代码如下: state = { shuffle: true, next_song: false,
state = {
shuffle: true,
next_song: false,
repeat_song: "",
}
if (this.state.repeat && !this.state.next_song) { //if user want to repeat a track
await TrackPlayer.pause();
await TrackPlayer.skip(this.state.repeat_song);
TrackPlayer.play();
}else {
let {title} = await TrackPlayer.getTrack(current_song);
let {current_track_id, current_track, cover, artist} = await this.get_info_track(tracks, title);
await AsyncStorage.setItem("last_song", JSON.stringify(current_track));
await AsyncStorage.setItem("last_song_duration", JSON.stringify(0));
this.setState({
current_track_id: current_track_id,
current_track: current_track,
cover: cover,
artist: artist,
repeat_song_id: current_song,
last_song_duration: 0,
next_song: false,
});
}
update_next_song = () => { //this will execute when the user press next, once is executed will be passed to false again
this.setState({next_song: true});
}
然后问题是当我从队列中选择时,下一首歌曲已经设置为false,并且第一个条件将始终为true,所以我想不出一种方法来实现这一点。您好,您可以将歌曲数组放入
TrackPlayer.add(Array).
和使用
TrackPlayer.skipToNext()
TrackPlayer.skipToPrevious();
它将根据您的要求工作,谢谢:-)
嗨,你可以把一系列的歌曲放进去
TrackPlayer.add(Array).
和使用
TrackPlayer.skipToNext()
TrackPlayer.skipToPrevious();
它将根据您的要求工作,谢谢:-)
这不起作用,我已经运行了skiptoNext,事件将捕获下一首歌曲。您可以向您展示TrackPlayer.add()。函数如何工作?这不起作用,我已经运行了skiptoNext,事件将捕获下一首歌曲。请向您展示TrackPlayer.add()。功能如何工作?