博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
阿里云移动端播放器高级功能---截图和音频波形
阅读量:5884 次
发布时间:2019-06-19

本文共 991 字,大约阅读时间需要 3 分钟。

基本介绍

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

clipboard.png

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

视频截图

实现接口
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层都有很多绘制音频波形的方法。
要绘制成什么样的形状都可以安装自己的需求来做。这些在网上都有很多相关的资料,在这里就不进行描述。

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

clipboard.png

clipboard.png

本文作者:隽阜

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

你可能感兴趣的文章
讲个大部分数据结构和算法教科书中都不会讲的问题
查看>>
mysql优化 | 存储引擎,建表,索引,sql的优化建议
查看>>
阿里P7级架构师总结Spring核心模块及功能汇总
查看>>
Java初学者最佳的学习方法以及会遇到的坑(内含学习资料)!
查看>>
前端开发笔记
查看>>
332 Reconstruct Itinerary[PriorityQueue]
查看>>
java B2B2C 源码 多级分销springmvc mybatis多租户电子商城系统---服务网关zuul
查看>>
2022年杭州亚运会会徽的设计方案
查看>>
masonry 使用 UIView 的动画
查看>>
Java7/8 中的 HashMap 和 ConcurrentHashMap 全解析
查看>>
java springcloud版b2b2c社交电商spring cloud分布式微服务 (四) 断路器(Hystrix)
查看>>
Coinbase调查发现,BCH上市前没有发生不当交易
查看>>
JAVA 多用户商城系统b2b2c-Spring Cloud组件
查看>>
技术文档编写心得
查看>>
RecycleView
查看>>
一致性哈希算法(consistent hashing)
查看>>
处理远程登录到linux/unix下退格键显示为^H方法
查看>>
Varnish
查看>>
tomcat 内存
查看>>
MySQL主从复制故障案例一
查看>>