【问题标题】:exoplayer setPlayWhenReady() not working why?exoplayer setPlayWhenReady() 为什么不起作用?
【发布时间】:2020-04-25 00:00:30
【问题描述】:

我用这个ExoPlayer demo 播放音频流。 我修改了用于播放带有通知的音频的代码。 为此,我将 Exoplayer 代码放在服务类中,但暂停方法不工作不知道会发生什么,但 setPlayWhenReady(false) 不在服务中工作。检查这个修改后的source code

【问题讨论】:

    标签: android service exoplayer


    【解决方案1】:

    那是因为每次你 setPlayWhenReady(false) 时,ExoPlayer 监听器的onPlayerStateChanged 方法被调用并且你在监听器中设置setPlayWhenReady(true)。 所以这就是你需要做的: 1. 在你的服务中定义一个字段:

    boolean isPreparing;
    

    2。在初始化 ExoPlayer 之前设置 isPreparing = true

    isPreparing = true;
    player.prepare(...);
    

    3。在 ExoPlayer Listener 的onPlayerStateChanged 方法中:

    @Override
    public void onPlayerStateChanged(boolean playWhenReady, int playbackState) {
      if(isPreparing && playbackState == ExoPlayer.STATE_READY){
         // do whatever you want
         isPreparing = false;
      }
    }
    

    就是这样。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-07
      • 2019-08-06
      • 2016-07-05
      • 2011-08-06
      相关资源
      最近更新 更多