android的MediaPlayer.create方法怎么用

 我来答
QQMSD8
2015-09-02 · 知道合伙人软件行家
QQMSD8
知道合伙人软件行家
采纳数:6788 获赞数:13239
没有做不到,只有想不到,帮助别人的同时也是对自己的提升

向TA提问 私信TA
展开全部
Android的MediaPlayer包含了Audio和video的播放功能
关于MediaPlayer的使用方式:

1.如何获得MediaPlayer实例:
可以使用直接new的方式:
MediaPlayer mp = new MediaPlayer();
也可以使用create的方式,如:
MediaPlayer mp = MediaPlayer.create(this, R.raw.test);//这时就不用调用setDataSource了

2.如何设置要播放的文件:
MediaPlayer要播放的文件主要包括3个来源:
a. 用户在应用中事先自带的resource资源
例如:MediaPlayer.create(this, R.raw.test);
b. 存储在SD卡或其他文件路径下的媒体文件
例如:mp.setDataSource("/sdcard/test.mp3");
c. 网络上的媒体文件
例如:mp.setDataSource("mp3或者mp4的地址");

3.MediaPlayer常用API
MediaPlayer的setDataSource一共四个方法:
setDataSource (String path)
setDataSource (FileDescriptor fd)
setDataSource (Context context, Uri uri)
setDataSource (FileDescriptor fd, long offset, long length)

对播放器的主要控制方法:
Android通过控制播放器的状态的方式来控制媒体文件的播放,其中:

1.prepare()和prepareAsync() 提供了同步和异步两种方式设置播放器进入prepare状态,需要注意的是,如果MediaPlayer实例是由create方法创建的,那么第一次启动播放前不需要再调用prepare()了,因为create方法里已经调用过了。
2. start()是真正启动文件播放的方法
3.pause()和stop()比较简单,起到暂停和停止播放的作用
4.seekTo()是定位方法,可以让播放器从指定的位置开始播放,需要注意的是该方法是个异步方法,也就是说该方法返回时并不意味着定位完成,尤其是播放的网络文件,真正定位完成时会触发OnSeekComplete.onSeekComplete(),如果需要是可以调用setOnSeekCompleteListener(OnSeekCompleteListener)设置监听器来处理的。
5.release()可以释放播放器占用的资源,一旦确定不再使用播放器时应当尽早调用它释放资源。
6.reset()可以使播放器从Error状态中恢复过来,重新会到Idle状态。
太阳照在汝河上
2012-12-12 · TA获得超过3583个赞
知道大有可为答主
回答量:2840
采纳率:40%
帮助的人:1834万
展开全部
播放指定SD卡上的音乐,用mMediaPlayer.setDataSource("\sdcard\")便设置要播放的文件的路径,然后调用start(),stop(),pause()便可实现开始,停止和暂停播放的功能。
而如果是应用中自带的音乐(如游戏中的音效),就是不是sdcard中的音乐了,一般情况下会存在应用目录下的''res\aw\'下,如何设定音乐的播放路径呢,很简单,只需把setDataSource()方法改成由create方法来创建的一个指定资源索引的MediaPlayer对象即可,即,mMediaPlayer = MediaPlayer.create(Context context, int resid),在这个方法中,我被resid这个资源ID纠结了一段时间 ,不知道如何定义这个资源ID,我将ok.mp3这个音乐文件放在res下的drawable-mdpi目录下,然后将resid设定为R.drawable.ok发现报错,搞的不知所错,接着我又尝试在drawable-mdpi目录下建立test文件,然后将ok.mp3文件放在其目录下,依旧报错,追究原因是我不理解资源ID的意思,后来只能查看书上自带的源码,才解决问题,原来,是在res目录下建立了一个raw文件,然后将ok.mp3文件放在目录下,然后设定resid为R.raw.ok即可,其中raw应该指定的是res目录下的文件目录吧(不是很清楚哦),然后OK指的是MP3音乐文件的名字。
在解决问题的过程中还无意看到有人总结的create()方法的应用,先留下来,慢慢尝试看看吧!即运用
方法:create(Context context, Uri uri) 解释:静态方法,通过Uri创建一个多媒体播放器。
例: Uri playUri = Uri.parse("/sdcard/download/mp3.mp3");
releaseMediaPlayer();
mMediaPlayer = MediaPlayer.create(mContext, playUri);
mMediaPlayer.start();

版权属于网易博友smily_happy博客
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式