Open Core 上层代码结构

在实际开发中我们并不会过多的研究Open Core 的实现,Android 提供了上层的Media API

给开发人员使用,MediaPlayer 和MediaRecorder

整体的结构如下图所示:

 

MediaPlayer JNI

代码位置/frameworks/base/media/jni

MediaPlayer (Native)

代码位置/frameworks/base/media/libmedia

MediaPlayerService (Server)

代码位置/frameworks/base/media/libmediaplayerservice

MediaPlayerService Host Process

代码位置/frameworks/base/media/mediaserver/main_mediaserver.cpp

PVPlayer

代码位置/external/opencore/android/

 

实际调用过程如下图所示:

 

MediaPlayer 的生命周期如下图

 

MediaPlayer 常用方法介绍

1、方法:create(Context context, Uriuri)

解释:静态方法,通过Uri 创建一个多媒体播放器。

2、方法:create(Context context, intresid)

解释:静态方法,通过资源ID 创建一个多媒体播放器。

3、方法:create(Context context, Uriuri, SurfaceHolder holder)

解释:静态方法,通过Uri 和指定SurfaceHolder 【抽象类】创建一个多媒体播放器。

4、方法:getCurrentPosition()

解释:返回Int,得到当前播放位置。

5、方法:getDuration()

解释:返回Int,得到文件的时间。

6、方法:getVideoHeight()

解释:返回Int ,得到视频的高度。

7、方法:getVideoWidth()

解释:返回Int,得到视频的宽度。

8、方法:isLooping()

解释:返回boolean ,是否循环播放。

9、方法:isPlaying()

解释:返回boolean,是否正在播放。

10、方法:pause()

解释:无返回值,暂停。

11、方法:prepare()

解释:无返回值,准备同步。

12、方法:prepareAsync()

解释:无返回值,准备异步。

13、方法:release()

解释:无返回值,释放MediaPlayer对象。

14、方法:reset()

解释:无返回值,重置MediaPlayer 对象。

15、方法:seekTo(int msec)

解释:无返回值,指定播放的位置(以毫秒为单位的时间)。

16、方法:setAudioStreamType(intstreamtype)

解释:无返回值,指定流媒体的类型

17、方法:setDataSource(String path)

解释:无返回值,设置多媒体数据来源【根据路径】

18、方法:setDataSource(FileDescriptorfd, long offset, long length)

解释:无返回值,设置多媒体数据来源【根据FileDescriptor】。

19、方法:setDataSource(FileDescriptorfd)

解释:无返回值,设置多媒体数据来源【根据FileDescriptor】。

20、方法:setDataSource(Contextcontext, Uri uri)

解释:无返回值,设置多媒体数据来源【根据Uri】。

21、方法:setDisplay(SurfaceHoldersh)

解释:无返回值,设置用SurfaceHolder 来显示多媒体。

22、方法:setLooping(boolean looping)

解释:无返回值,设置是否循环播放。

23、事件:setOnBufferingUpdateListener(MediaPlayer.OnBufferingUpdateListener

listener)

解释:监听事件,网络流媒体的缓冲监听。

24、事件:setOnCompletionListener(MediaPlayer.OnCompletionListenerlistener)

解释:监听事件,网络流媒体播放结束。

25、事件:setOnErrorListener(MediaPlayer.OnErrorListenerlistener)

解释:监听事件,设置错误信息监听。

26、事件:setOnVideoSizeChangedListener(MediaPlayer.OnVideoSizeChangedListener

listener)

解释:监听事件,视频尺寸监听。

26、方法:setScreenOnWhilePlaying(booleanscreenOn)

解释:无返回值,设置是否使用SurfaceHolder 显示。

27、方法:setVolume(float leftVolume,float rightVolume)

解释:无返回值,设置音量。

28、方法:start()

解释:无返回值,开始播放

29、方法:stop()

解释:无返回值,停止播放


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值