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

栏目: IOS · 发布时间: 5年前

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

基本介绍

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

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

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

视频截图

实现接口

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 层都有很多绘制音频波形的方法。

要绘制成什么样的形状都可以安装自己的需求来做。这些在网上都有很多相关的资料,在这里就不进行描述。

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

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

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

本文作者:隽阜

阅读原文

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


以上所述就是小编给大家介绍的《阿里云移动端播放器高级功能---截图和音频波形》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Effective Modern C++ 简体中文版

Effective Modern C++ 简体中文版

Scott Meyers / 高博 / 中国电力出版社 / 2018-4-23 / 99

想要彻底理解C++11和C++14,不可止步于熟悉它们引入的语言特性(例如,auto型别推导、移动语义、lambda表达式以及并发支持)。挑战在于高效地运用这些特性——从而使你的软件具备正确性、高效率、可维护性和可移植性。这正是这本实用的图书意欲达成的定位。它描述的正是使用C++11和C++14——现代C++来撰写真正卓越的软件之道。 涵盖以下主题: 大括号初始化、noexcept规格......一起来看看 《Effective Modern C++ 简体中文版》 这本书的介绍吧!

图片转BASE64编码
图片转BASE64编码

在线图片转Base64编码工具

随机密码生成器
随机密码生成器

多种字符组合密码

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换