我使用了这个 ExoPlayer演示 为了播放音频流,我修改了代码,以播放带有通知的音频,为此我在服务类中加入了Exoplayer代码,但暂停方法不工作,不知道发生了什么,但这是一个很好的方法。setPlayWhenReady(false)
在服务中不工作。检查这个修改 源码
这是因为每次你设置PlayWhenReady(false)的时候,都会有一个 "暂停 "方法。onPlayerStateChanged
方法的方法,并且您设置了 setPlayWhenReady(true)
在监听器中。所以你需要做的是:1.在你的服务中定义一个字段。
boolean isPreparing;
2. 设置 isPreparing = true
在初始化ExoPlayer之前。
isPreparing = true;
player.prepare(...);
3. 在 onPlayerStateChanged
方法的ExoPlayer Listener 。
@Override
public void onPlayerStateChanged(boolean playWhenReady, int playbackState) {
if(isPreparing && playbackState == ExoPlayer.STATE_READY){
// do whatever you want
isPreparing = false;
}
}
就是这样。