自定义 影片播放器——MediaPlayer 与SurfaceView

本示例使用 使用MediaPlayer  制作一个 视频播放器 ,可指定视频的大小、预览的模式之外,还提供对 prepare,OnCompletionListener  等事件的判断。

通过创建SurfaceView  视图与控制SurfaceView 的 SurfaceHolder  对象,搭配 MediaPlayer  的 setDisplay()  方法来指定要将图像显示于指定的 SurfaceView 之上

要在Activity 里配置 SurfaceView ,必须实现 SurfaceHolder.Callback接口

注意这里 <SurfaceView  android:id="@+id/mSurfaceView1"
                            android:layout_width="320px"
                            android:layout_height="240px"/>, 虽然设置宽高属性为320X240 (pixel),

但在java类中 如果没有以下一行

mSurfaceHolder01.setFixedSize(176,144);

播放视频时会以原影片大小播放,也就是说单纯设置320 X 240 没有作用, SurfaceView 其余范围会以黑底呈现

示意图如下:

 

具体用法请参见 EX07_14 工程

MediaPlayer 类是非常系统化的,需要按特定顺序调用操作来正确初始化媒体播放器, 并让它准备回放. 以下总结了一些特征:

1   设置了 MediaPlayer 的数据源以后,就不能随意更改它,  必须创建一个新MediaPlayer 对象或调用 reset()  方法来重新初始化播放器的状态

2    调用prepare()  之后,可以调用getCurrentPosition()、getDuration()和isPlaying()  来获取播放器的当前状态。也可以在调用prepare()  之后调用setLooping() 和 setVolume()

3    调用start()之后,可以调用pause()、stop()、seekTo().

4   每个 MediaPlayer  创建一个新线程,要确保使用播放器完成后调用release(), 对于视频回放,必须手动完成此工作。


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值