• [转载]LivePlayer实现直播抓拍


    对于一个裸的RTSP URL,存放在播放列表上略显单调与枯燥。大家可以看到LivePlayer在播放完视频后会保存一帧图片到列表上。那么这个功能是如何做到的呢?
    如果自己实现解码的话,比如使用ffmpeg解码,这种情况下,将视频帧解码,再编码成jpeg保存下来,应该不是什么难事。相信大多数播放器都是这样处理的。但是如果我们用硬解码,很遗憾,安卓的硬解码并没有提供获取视频帧数据的功能,那又该如何实现呢?
    有两种方法可以实现硬解码截屏

    • 单独创建截屏用的软解码器
    • 直接获取TextureView的内容并保存

    第一种方法为常规的方法,没什么好说的。这里介绍下第二种方法。TextureView提供了一个getBitmap() 的方法,解释如下:

    Returns a Bitmap representation of the content of the associated surface texture.

    该方法提供了当前TextureView的渲染内容,作为一个Bitbmap对象返回。这样我们可以将这个Bitmap压缩成jpeg、png等格式并保存下来。Bitmap提供了compress 方法可以直接压缩。
    这里需要注意的是调用时机,一定要在TextureView创建之后,确切的说是当前画面显示之后调用。否则您保存的快照可能是纯黑色的。

     

  • 相关阅读:
    「SPOJ10707」Count on a tree II
    UVA 11021 /概率
    power oj/2360/Change
    POJ1613 147/思维题
    Power oj2498/DP/递推
    HDU4815/计数DP
    444A/CF
    观光公交noip<贪心>
    2014 Shanghai Invitation Contest
    POJ1734/Floyd求最小环
  • 原文地址:https://www.cnblogs.com/kumukim/p/11006675.html
Copyright © 2020-2023  润新知