• EasyPlayer-Android播放器是如何实现播放器退到后台后,再回到前台时,播放画面的无缝衔接?


    EasyPlayer-Android播放器是一款可针对RTSP、RTMP、RTSP&RTMP协议进行过优化的流媒体播放器,其中我们引以为傲的两个技术优势就是起播速度快和播放延迟低。最近我们遇到一些需求,其对播放画面要求非常苛刻,于是我们再把代码捡起来,针对之前的播放策略进行再优化,果然又发现一些可以更改和调优的地方,于是又对性能进行了一次压榨和优化。

    EasyPlayerRTMP.png

    如何实现播放器退到后台后,再回到前台时,播放画面可以无缝衔接?

    分析问题

    Android播放视频返回后台,再重新回到播放界面,发现TextureView显示视图是一片黑色,是因为播放界面返回后台时会调用onSurfaceTextureDestroyed方法去销毁SurfaceView(华为平板熄屏后也会调用),再到播放界面需要重新创建SurfaceView并初始化EasyPlayerClient,这样会耗费很长时间。

    解决问题

    在onSurfaceTextureDestroyed销毁方法中,有一个SurfaceTexture参数,我们在销毁的时候返回false,并保存SurfaceTexture对象,然后从后台返回界面的时候在onSurfaceTextureAvailable()方法中,调用setSurfaceTexture(mSurfaceTexture)方法,这样就会恢复之前的画面了。

    SDK中的代码如下:

    28.png29.png

    EasyPlayer实现了对遵循标准流媒体码流协议进行实时播放以及码流录制,在流的播放速度以及画质的解码显示上均做了大量深度的优化。另外EasyPlayer支持多平台的客户端版本,方便直接使用或在此基础上进行二次开发。

    支持Windows(支持多窗口、包含ActiveX,npAPI Web插件)、Android平台,iOS平台;
    视频支持H.264,H.265,MPEG4,MJPEG
    音频支持G711A,G711U,G726,AAC
    支持RTSP over TCP/UDP,支持硬解码

  • 相关阅读:
    InnoDB和MyISAM区别
    include和require的区别
    php的魔术方法
    php中heredoc的使用方法
    20条常见的编码陷阱
    php header 跳转
    php.ini设置详解
    session的实现原理 大网站应用应注意的问题
    Ruby on Rails 开发实践相关命令参考
    IBM WebSphere Portal6 最佳项目实践
  • 原文地址:https://www.cnblogs.com/EasyNVR/p/12021367.html
Copyright © 2020-2023  润新知