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

我使用了这个 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;
  }
}

就是这样。

给TA打赏
共{{data.count}}人
人已打赏
未分类

如何在R中循环浏览xml节点?

2022-9-9 9:32:19

未分类

如何在Quarkus中设置服务器发送事件(SSE)的事件名称。

2022-9-9 9:32:21

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索