播放单轨Spotify SDK

Posted

技术标签:

【中文标题】播放单轨Spotify SDK【英文标题】:Play single track spotify sdk 【发布时间】:2019-04-09 12:15:50 【问题描述】:

我正在使用Spotify android SDK,我正在尝试播放一首歌曲,我希望在当前歌曲完成后播放一首歌曲。问题是歌曲完成后,Spotify 会播放一首随机歌曲。是否可以播放歌曲而不自动播放其他任何内容?

我只是调用app remotes player API play函数,

mSpotifyAppRemote?.getPlayerApi()?.play(uri)

【问题讨论】:

【参考方案1】:

@Mikee 你没有做错任何事,如果你只使用免费版,Spotify 会搞乱曲目回放,如果你使用高级版,它会正常工作。如果您尝试由使用免费版本的专辑或艺术家演奏,那就很有趣了。

【讨论】:

天啊,非常感谢你。但是你是从哪里得到这些信息的?【参考方案2】:

我不是专家,但从their documentation 看来您可以观看PlayerState。我也不确定PlayerState 事件何时会触发,但如果它相对频繁地返回,您可以检查track 值并查看它是否已转到null 或其他值并使用它。

这是他们网站上的一个 Java 示例:

// Subscribe to PlayerState
        mSpotifyAppRemote.getPlayerApi()
                .subscribeToPlayerState()
                .setEventCallback(new Subscription.EventCallback<PlayerState>() 

            public void onEvent(PlayerState playerState) 
                // See what values are in playerState, might be able to determine 
                // if it's now randomly playing?
                final Track track = playerState.track;
                if (track != null) 
                    Log.d("MainActivity", track.name + " by " + track.artist.name);
                    // If the track is now different, your song has finished, stop it?
                
            
        );

我在上面的代码中添加了一些额外的 cmets,它们可能会产生一些结果!

【讨论】:

谢谢,问题是我在过去试过这个,值很少会变成null,它通常会转到另一个轨道,我可以听这个变化并停止下一个轨道,问题是下一首曲目仍会播放大约一秒钟的声音 @Mikee 啊,API 还提供了哪些其他事件监听器?如果它为当前曲目信息提供了一个,您是否能够获取您正在播放的歌曲的持续时间,然后在该持续时间之后休眠并停止声音? 问题是它仍然不能阻止其他曲目的播放 @Mikee 难道你不能在你开始播放的时候就得到你想要播放的曲目的持续时间,然后使用计时器在它停止前 1 秒停止 Spotify 输出吗?这样就没有其他东西可以播放了。

以上是关于播放单轨Spotify SDK的主要内容,如果未能解决你的问题,请参考以下文章

使用 spotify api 控制 spotify web player sdk 的播放状态

无法播放歌曲 Spotify SDK

使用 iOS Spotify SDK 在给定的开始时间启动 Spotify 曲目播放?

使用 Spotify iOS SDK 关注播放列表

Spotify 网络播放 SDK

使用适用于 Android 的 Spotify SDK 播放播放列表和曲目