Android中的音频视屏相关(多媒体2)

来源:互联网 发布:天融信网络管理系统 编辑:程序博客网 时间:2024/06/06 17:54

引言:多媒体:(包含文字 图片 音频 视频)

一、MediaPlayer的简介

请看官方文档介绍:MediaPlayer class can be used to control playback of audio/video files and streams.

意思是:媒体播放器类可用于控制音频/视频文件和流播放

同时MediaPlay有生命周期,如下:

                                      

二、示例(播放音频)


三、生命周期(略)


四、示例(播放视频)

①播放视频需要用到一个控件,即:SurfaceView

SurfaceView   介绍:

surfaceview 控件是一个重量级控件 ,内部维护了2个线程 。工作原理:假如有A,B线程,
   A 获取数据  负责显示 
   B 负责显示  获取数据       两者交替进行。
surfaceview 可以直接在子线程更新ui (补充:与进度相关的控件可以直接在子线程更新ui)。
另外:SurfaceView播放视频,只支持 3gp、MP4格式 。

③示例代码:


五、组件介绍(VideoView)

这个控件其实就是对SurfaceViewMediaPlayer进行封装。使用起来更加简单。

六、vitamio框架

可以播放市面上大部分格式,同样也是对MediaPlayer的封装、扩展。

七、总结

①由于C语言有操作硬件的能力 ,java没有  ,因此mediaPlayer只是上层应用,会通过jni实现native来调用c(c++)进而操作硬件的音乐播放。
②当使用的资源是从网络获取的时候,一定要使用设置的资源是网络资源 要用player.prepareAsync(),此方法是异步的。
③实际应用中,如果只是实现播放功能,就可以使用第三方框架;如果真正去开发播放器,就得用到MediaPlayer,甚至更底层的c(FFmpeg是由几十个C程序员开源项目,FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序)。
*

0 0
原创粉丝点击