java media.player_9.2 MediaPlayer播放音频与视频

本节引言:

本节带来的是Android多媒体中的——MediaPlayer,我们可以通过这个API来播放音频和视频

该类是Androd多媒体框架中的一个重要组件,通过该类,我们可以以最小的步骤来获取,解码

和播放音视频。它支持三种不同的媒体来源:

本地资源

内部的URI,比如你可以通过ContentResolver来获取

外部URL(流)

对于Android所支持的的媒体格式列表

对于Android支持的媒体格式列表,可见:Supported Media Formats 文档

本节我们就来用MediaPlayer来写个简单的播放音视频的例子!

1.相关方法详解

1)获得MediaPlayer实例:

可以直接new或者调用create方法创建:

MediaPlayer mp = new MediaPlayer();

MediaPlayer mp = MediaPlayer.create(this, R.raw.test); //无需再调用setDataSource

另外create还有这样的形式:

create(Context context, Uri uri, SurfaceHolder holder)

通过Uri和指定 SurfaceHolder 【抽象类】 创建一个多媒体播放器

2)设置播放文件:

//①raw下的资源:

MediaPlayer.create(this, R.raw.test);

//②本地文件路径:

mp.setDataSource("/sdcard/test.mp3");

//③网络URL文件:

mp.setDataSource("http://www.xxx.com/music/test.mp3");

另外setDataSource()方法有多个,里面有这样一个类型的参数:FileDescriptor,在使用这个

API的时候,需要把文件放到res文件夹平级的assets文件夹里,然后使用下述代码设置DataSource:

AssetFileDescriptor fileDescriptor = getAssets().openFd("rain.mp3");

m_mediaPlayer.setDataSource(fileDescriptor.getFileDescriptor(),fileDescriptor.getStartOffset(), fileDescriptor.getLength());

3)其他方法

getCurrentPosition( ):得到当前的播放位置

getDuration() :得到文件的时间

getVideoHeight() :得到视频高度

getVideoWidth() :得到视频宽度

isLooping():是否循环播放

isPlaying():是否正在播放

pause():暂停

prepare():准备(同步)

prepareAsync():准备(异步)

release():释放MediaPlayer对象

reset():重置MediaPlayer对象

seekTo(int msec):指定播放的位置(以毫秒为单位的时间)

setAudioStreamType(int streamtype):指定流媒体的类型

setDisplay(SurfaceHolder sh):设置用SurfaceHolder来显示多媒体

setLooping(boolean looping):设置是否循环播放

setOnBufferingUpdateListener(MediaPlayer.OnBufferingUpdateListener listener):

网络流媒体的缓冲监听

setOnCompletionListener(MediaPlayer.OnCompletionListener listener):

网络流媒体播放结束监听

setOnErrorListener(MediaPlayer.OnErrorListener liste

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值