exoplayer setPlayWhenReady()不能用,为什么?

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

我使用了这个 ExoPlayer演示 为了播放音频流,我修改了代码,以播放带有通知的音频,为此我在服务类中加入了Exoplayer代码,但暂停方法不工作,不知道发生了什么,但这是一个很好的方法。setPlayWhenReady(false) 在服务中不工作。检查这个修改 源码

android service exoplayer
1个回答
0
投票

这是因为每次你设置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;
  }
}

就是这样。

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