Spotify Web SDK / Web API问题,当前播放状态

问题描述 投票:3回答:1

我目前正在使用Web Player SDK / Web Api来控制我的应用程序中的Spotify播放。我遇到的当前问题是,每当播放歌曲时,都无法检测到歌曲播放的结束,因为

state.track_window.next_songs

在收听时

player.addListener('player_state_changed', state => { });

总是在“播放队列”中有项目,这几乎导致无法检测。

此:state && state.paused && state.context && state.context.metadata && state.context.metadata.uri == null通常适用,但是在state.track_window.next_songs中包含任何内容的情况下,永远不会触发暂停。

我想知道是否有人对此有解决方案,或者是否有办法清除特定Spotify玩家实例的播放队列?

谢谢!

reactjs web spotify
1个回答
0
投票

我不确定我是否理解正确,但是如果您想检测一首歌曲何时播放完毕,可以使用当前播放歌曲的ID来创建一个名为currentPlay的对象,然后在状态更新时检查ID state.current_track的如果与您的currentlyPlaying.id不同,则表示歌曲已结束,下一首开始。

-----编辑------

有一种方法可以使next_tracks数组为空。如果使用"uris"主体参数播放歌曲,则可以添加要播放的歌曲数组,并在其末尾next_tracks数组为空。看这个截图:enter image description here

要实现这一点,请查看Spotify API:https://developer.spotify.com/console/put-play/?device_id=&body=%7B%20uris%3A%20%5Bspotify%3Atrack%3A3BQHpFgAp4l80e1XslIjNI%5D%20%7D

我仅使用"uris"参数,而不使用"context_uri",并且仅在数组中传递1首歌曲。播放完歌曲后,没有任何播放。enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.