reactjs - Spotify Web SDK/Web API 当前播放状态的问题

标签 reactjs web spotify

我目前正在使用 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 播放器实例的播放队列?

谢谢!

最佳答案

我不确定我是否理解正确,但如果你想检测歌曲何时完成播放,你可以有一个名为 currentPlaying 的对象,其中包含当前播放歌曲的 ID,然后当有状态更新时,检查state.current_track的ID。如果它与您的 currentPlaying.id 不同,则表示歌曲已结束并开始下一首。

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

有一种方法可以让 next_tracks 数组为空。如果您使用 "uris" body 参数播放歌曲,您可以添加要播放的歌曲数组,并且其末尾的 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

关于reactjs - Spotify Web SDK/Web API 当前播放状态的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59925558/

相关文章:

javascript - propType 失败 : The prop `id` is required to make `Dropdown` accessible for users of assistive technologies such as screen readers

html - HTML5错误验证中表格宽度边框cellspacing cellpadding全0

node.js - Spotify Web API 授权 - 客户端凭证流错误 invalid_client

url - 网址中的 www 有什么意义?

R直接从网络导入excel文件

gradle - ReactNative - Spotify SDK 依赖冲突

ios - 从 NSURL 获取 SPTImage?

reactjs - React-router - 加载时重定向?

reactjs - 如何将 onDrop 回调传递给 ImageInput

react-flux 中的 Javascript 获取 API