zoukankan      html  css  js  c++  java
  • 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,支持硬解码

  • 相关阅读:
    codeforces B. Strongly Connected City(dfs水过)
    codeforces A. Bayan Bus(简单模拟)
    AC_Dream 1211 Reactor Cooling
    AC_Dream 1224 Robbers(贪心)
    java中DatagramSocket连续发送多个数据报包时产生丢包现象解决方案
    AC_Dream 1216 G
    java模拟一个简单的QQ
    codeforces D. Design Tutorial: Inverse the Problem
    codeforces B. Design Tutorial: Learn from Life
    codeforce A. Design Tutorial: Learn from Math
  • 原文地址:https://www.cnblogs.com/EasyNVR/p/12021367.html
Copyright © 2011-2022 走看看