【问题标题】:How to properly track playback position? [Android Media Broadcast Notifications Spotify API]如何正确跟踪播放位置? [Android 媒体广播通知 Spotify API]
【发布时间】:2018-10-15 05:55:59
【问题描述】:
【问题讨论】:
标签:
android
api
android-intent
broadcastreceiver
spotify
【解决方案1】:
我知道这个问题很老了,但是如果其他人遇到它,我还是会回答。
我建议不断查询 Spotify 以获取播放位置。您可以做到这一点的一种方法是使用计时器并在每个给定的时间范围内查询 Spotify。下面的示例每 100 毫秒查询一次 Spotify。如果你想减少/增加查询次数,你可以简单地使用 stopwatch.setClockDelay() 并提供你需要的时间
例如,您可以使用这个计时器库
implementation 'com.yashovardhan99.timeit:timeit:1.2.0'
然后使用以下代码:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.spotify);
Stopwatch stopwatch = new Stopwatch();
stopwatch.setOnTickListener(this);
stopwatch.start();
}
@Override
public void onTick(Stopwatch stopwatch) {
Data.getAndroidSpotifyAppRemote().getPlayerApi().getPlayerState().setResultCallback(new CallResult.ResultCallback<PlayerState>() {
@Override
public void onResult(PlayerState playerState) {
Log.d("TAG", playerState.playbackPosition);
}
});
}
不要忘记在类的顶部添加以下代码:
implements Stopwatch.OnTickListener