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

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

基本介绍

如果用户对视频播放中的某一帧画面特别感兴趣,可以使用截图功能将这一帧视频保存起来。另外有一种场景想知道是否有声音,或者想感知声音的大小震动频率等,可以通过显示一个声音的波形来形象的表示。如下图所示:
a4da5c8a280a1467e34bab36b3dc101eb7ad1a20
那么播放器提供了类似的方法可以让用户有办法去实现音频波形这个功能。那么这种通常在音乐播放器中比较常见,或者在直播场景中来标识对方讲话是否有声音等,有一定的应用场景。

视频截图

实现接口

iOS接口如下:

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

Android接口如下:

public Bitmap snapShot();

需要注意

视频内容截取

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

保持镜像和旋转

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

音频波形

实现接口

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

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

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

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

public void setOnPcmDataListener(OnPcmDataListener onPcmDataListener);

实现音频波形

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

类似如下比较炫的效果都可以实现。
4eb74d509d3b2cbad8dcb9e01c8ed19827b9b692804dd9259ae660d482526e0e8c4324ab508537ea

目录
相关文章
|
8月前
|
移动开发 监控 小程序
mPaaS常见问题之音视频通话微信小程序通话界面录制为画中画模式如何解决
mPaaS(移动平台即服务,Mobile Platform as a Service)是阿里巴巴集团提供的一套移动开发解决方案,它包含了一系列移动开发、测试、监控和运营的工具和服务。以下是mPaaS常见问题的汇总,旨在帮助开发者和企业用户解决在使用mPaaS产品过程中遇到的各种挑战
108 0
|
数据采集 前端开发 Android开发
Android平台RTMP推送或GB28181设备接入端如何实现采集audio音量放大?
我们在做Android平台RTMP推送和GB28181设备对接的时候,遇到这样的问题,有的设备,麦克风采集出来的audio,音量过高或过低,特别是有些设备,采集到的麦克风声音过低,导致播放端听不清前端采集的audio,这时候,就需要针对采集到的audio,做音量放大处理。
|
JavaScript API
uniapp实现录音功能和播放功能
uniapp实现录音功能和播放功能
|
8月前
uniapp制作录音播放功能
uniapp制作录音播放功能
246 0
|
8月前
|
XML Java Android开发
Android 开发中原始音频的录播和和自定义音频控制条的讲解及实战(超详细 附源码)
Android 开发中原始音频的录播和和自定义音频控制条的讲解及实战(超详细 附源码)
60 0
|
8月前
|
存储
uniapp录音功能和音频播放功能制作
uniapp录音功能和音频播放功能制作
441 0
|
数据采集 物联网 Linux
Unity3D下实现Linux平台RTMP推流(以采集Unity窗体和声音为例)
随着物联网等行业的崛起,越来越多的传统行业如虚拟仿真、航天工业、工业仿真、城市规划等,对Linux下的生态构建,有了更大的期望,Linux平台下,可选的直播推拉流解决方案相对Windows和移动端,非常少,基于Unity的Linux推送方案,更是几无参考。本文以Unity3d环境下Linux平台推送Unity窗体和Unity采集的音频,然后编码推送到RTMP服务器为例,大概说下实现过程。
198 0
案例分享:Qt+FFmpeg录屏应用(支持帧率、清晰度设置)
案例分享:Qt+FFmpeg录屏应用(支持帧率、清晰度设置)
|
安全 JavaScript 前端开发
如何让在线视频以自定义速度播放
现在看视频不来个两倍速(或者更快)都觉得在浪费生命。 特别是在看视频教程的时候,文字我们可以做到一目十行,但是视频呢,如果有字幕,我们甚至不用听清,用3倍速或者4倍速完全没有问题,尤其在看别人在线写代码的时候,速度快了,就觉得特别顺滑。
535 0
如何让在线视频以自定义速度播放