EasyPlayer视频源切换

EasyPlayer现支持多视频源快速切换,适用于多监控场景轮播。通过在Fragment中封装播放器,切换视频源时仅toggle显示状态,实现播放toggle。在隐藏Fragment时暂停播放,显示时继续,确保流畅体验。在RTSP直播情况下,暂停时清空缓冲并设置暂停标志,10秒后关闭流传输;恢复时取消任务,保持流连接,确保快速切换且节省流量。
摘要由CSDN通过智能技术生成

EasyPlayer现在支持多视频源快速切换了,我们介绍一下是如何实现的.
这个需求通常应用在一个客户端需要查看多个视频源的情况,比如多个监控场景轮播.

由于EasyPlayer的播放端已经放在Fragment了,这使得SDK层可以对好多应用层的代码做以封装,这样尽可能给开发者带来方便.比如,两个视频源切换的时候,只需要创建两个PlayFragment,然后对这两个Fragment进行显示切换,如代码所示:

public void onSwitchPlayer(View view) {
  PlayFragment f = (PlayFragment) getSupportFragmentManager().findFragmentByTag("first");
  PlayFragment s = (PlayFragment) getSupportFragmentManager().findFragmentByTag("second");

  if (!s.isHidden()){
    getSupportFragmentManager().beginTransaction().show(f).commit();
    getSupportFragmentManager().beginTransaction().hide(s).commit();
    mRenderFragment = f;
  }else{
    getSupportFragmentManager().beginTransaction().show(s).commit();
    getSupportFragmentManager().beginTransaction().hide(f).commit();
    mRenderFragment = s;
  }
}

是不是很简单?只需要对两个Fragment的显示状态进行toggle,就可以实现播放的toggle.
有的同学可能想问,这样实际上只是切换了当前显示的View,实际上视频还是会在后台播放吧?的确是这样的,为了最快地进行视频切换,不至于在切换过程中导致视频延迟\黑屏\卡顿,我们保留了后台一个视频没有释放.

这样可能有些同学觉得不好,我们也觉得不好.所以别急,接着往下看,看看PlayFragment内部又在这个过程中发生了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值