阿里云移动端播放器高级功能---截图和音频波形

基本介绍

若是用户对视频播放中的某一帧画面特别感兴趣,可使用截图功能将这一帧视频保存起来。另外有一种场景想知道是否有声音,或者想感知声音的大小震动频率等,能够经过显示一个声音的波形来形象的表示。以下图所示:spa


那么播放器提供了相似的方法可让用户有办法去实现音频波形这个功能。那么这种一般在音乐播放器中比较常见,或者在直播场景中来标识对方讲话是否有声音等,有必定的应用场景。code

视频截图

实现接口

iOS接口以下:视频

/**
 * 功能:截取当前正在播放图像
 *
 */
-(UIImage*) snapshot;

Android接口以下:blog

public Bitmap snapShot();

须要注意

视频内容截取

须要知道的是视频截图截取的是视频的真实内容,而不是渲染窗口大小的图像。好比播放的是1920x1080的图像,窗口渲染大小是800*600,那么截取出来的图像是原始的1080p的图像,而不是窗口渲染大小的图像。这样截取出来的内容不会有失真的状况。接口

保持镜像和旋转

若是此时用户设置了镜像或者旋转模式,那么截取出来的视频内容也是有旋转和镜像的图像。SDK内部已经对这种状况进行了处理。get

音频波形

实现接口

用户要实现音柱功能,播放器SDK必需要将实时的播放音频数据回调出来,具体见一下方法:
iOS接口:经过一个block回调出PCM音频数据直播

/**
 * 功能:
 * 参数:block:音频数据回调
 *
 */
-(void) getAudioData:(void (^)(NSData *data))block;

Android接口:经过一个监听来获取音频数据it

public interface OnPcmDataListener {
    public void onPcmData(byte[] data, int size);
}

public void setOnPcmDataListener(OnPcmDataListener onPcmDataListener);

实现音频波形

拿到了PCM数据以后,如何去绘制音频波形,就是应用层的事情了,iOS和Java层都有不少绘制音频波形的方法。
要绘制成什么样的形状均可以安装本身的需求来作。这些在网上都有不少相关的资料,在这里就不进行描述。io

相似以下比较炫的效果均可以实现。社区

 

原文连接

本文为云栖社区原创内容,未经容许不得转载。

相关文章
相关标签/搜索