android MediaPlayer的一些使用方法简历

这里提供一些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("http://www.citynorth.cn/music/confucius.mp3");

MediaPlayer的setDataSource一共四个方法:

setDataSource (String path)

setDataSource (FileDescriptor fd)

setDataSource (Context context, Uri uri)

setDataSource (FileDescriptor fd, long offset, long length)

其中使用FileDescriptor时,需要将文件放到与res文件夹平级的assets文件夹里,然后使用:

AssetFileDescriptor fileDescriptor = getAssets().openFd("rain.mp3");
m_mediaPlayer.setDataSource(fileDescriptor.getFileDescriptor(),fileDescriptor.getStartOffset(), fileDescriptor.getLength());

来设置datasource

3)对播放器的主要控制方法:

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

prepare()和prepareAsync() 提供了同步和异步两种方式设置播放器进入prepare状态,需要注意的是,如果MediaPlayer实例是由create方法创建的,那么第一次启动播放前不需要再调用prepare()了,因为create方法里已经调用过了。

start()是真正启动文件播放的方法,

pause()和stop()比较简单,起到暂停和停止播放的作用,

seekTo()是定位方法,可以让播放器从指定的位置开始播放,需要注意的是该方法是个异步方法,也就是说该方法返回时并不意味着定位完成,尤其是播放的网络文件,真正定位完成时会触发OnSeekComplete.onSeekComplete(),如果需要是可以调用setOnSeekCompleteListener(OnSeekCompleteListener)设置监听器来处理的。

release()可以释放播放器占用的资源,一旦确定不再使用播放器时应当尽早调用它释放资源。

reset()可以使播放器从Error状态中恢复过来,重新会到Idle状态。

4)播放器的监听方法

mMediaPlayer.setOnCompletionListener()  //当播放结束时调用此方法

mMediaPlayer.setOnPreparedListener()  //当调用mMediaPlayer.prepareAsync()方法时就会触发此监听,注册一个回调函数,当媒体源准备播放时调用

mMediaPlayer.setOnErrorListener() //在异步操作期间发生错误时,注册一个回调函数来调用,如果播放失败就调用此方法

mMediaPlayer.setOnSeekCompleteListener()  //此方法是当你调用MediaPlayer.seekTo()定位从哪里开始播放时,当真正定位成功时就会回调此方法

时间: 2024-08-09 03:15:04

android MediaPlayer的一些使用方法简历的相关文章

android MediaPlayer

Playback control of audio/video files and streams is managed as a state machine. The following diagram shows the life cycle and the states of a MediaPlayer object driven by the supported playback control operations. The ovals represent the states a M

Android -- MediaPlayer内部实现简析

Android -- MediaPlayer内部实现简析 在之前的博客中,已经介绍了使用MediaPlayer时要注意的内容.现在,这里就通过一个MediaPlayer代码实例,来进一步分析MediaPlayer内部是如何运作.实现的:当然这里的分析只截止到底层调用播放器之前,因为播放器这块实在是没搞懂. 我们使用的例子来源于之前MediaPlayer Playback译文中的官方实例: String url = "http://........"; // your URL here

翻译的很好的一篇android mediaplayer

MediaPlayer类可用于控制音频/视频文件或流的播放.关于如何使用这个类的方法还可以阅读VideoView类的文档. 1.状态图对播放音频/视频文件和流的控制是通过一个状态机来管理的.下图显示一个MediaPlayer对象被支持的播放控制操作驱动的生命周期和状态.椭圆代表MediaPlayer对象可能驻留的状态.弧线表示驱动MediaPlayer在各个状态之间迁移的播放控制操作.这里有两种类型的弧线.由一个箭头开始的弧代表同步的方法调用,而以双箭头开头的代表的弧线代表异步方法调用. 通过这

[转]Android MediaPlayer状态机

翻译Android Reference Manual的MediaPlayer的状态机 对播放音频/视频文件和流的控制是通过一个状态机来管理的.下图显示一个MediaPlayer对象被支持的播放控制操作驱动的生命周期和状态.椭圆代表MediaPlayer对象可能驻留的状态.弧线表示驱动MediaPlayer在各个状态之间迁移的播放控制操作.这里有两种类型的弧线.由一个箭头开始的弧代表同步的方法调用,而以双箭头开头的代表的弧线代表异步方法调用. 通过这张图,我们可以知道一个MediaPlayer对象

Android(java)学习笔记180:Android MediaPlayer 播放prepareAsync called in state 8解决办法

使用android MediaPlayer播放音频文件时,有时会出现prepareasync called in state 8错误. 以下方法可以避免这个异常出现.  第一种方法: private void playAudio(String audioUri){ Uri uri = Uri.parse(audioUri); mMediaPlayer = MediaPlayer.create(getApplicationContext(), uri); try { //在播放之前先判断playe

Android MediaPlayer状态机

对播放音频/视频文件和流的控制是通过一个状态机来管理的.下图显示一个MediaPlayer对象被支持的播放控制操作驱动的生命周期和状态.椭圆代表MediaPlayer对象可能驻留的状态.弧线表示驱动MediaPlayer在各个状态之间迁移的播放控制操作.这里有两种类型的弧线.由一个箭头开始的弧代表同步的方法调用,而以双箭头开头的代表的弧线代表异步方法调用.   通过这张图,我们可以知道一个MediaPlayer对象有以下的状态: 1)当一个MediaPlayer对象被刚刚用new操作符创建或是调

Android MediaPlayer 框架UML图

Android开发交流群:50342056 目的 本文用一个UML类图,讲解mp3文件播放的框架流程.内容以下几个方面: 1.UML类图 2.stagefrightPlayer是如何创建的: 3.mp3文件的解析和解码的简单介绍 4.播放mp3文件过程中,生产者和消费者的关系: 5.openmax和stagefright框架的消息机制 UML类图 stagefrightPlayer是如何创建的 对照着UML图,看下StagefrightPlayer创建的过程. 故事的开始是Java层的Media

Android MediaPlayer分析

在写这篇文章之前,我先说明一下,这篇文章可能不会真对于android初学者,因为有一些概念,我并不会讲解.除此之外,在博客的连贯性上来讲,这篇文章也有所欠缺.时间紧迫,仅作为开发过程中的一个记录文章,供大家参考吧! 首先介绍一下各种状态: 明确一个概念,Idle(new MediaPlayer后)和End(MediaPlayer.reset()后)间的状态是MediaPlayer的生命周期 Idle 状态:当使用new()方法创建一个MediaPlayer对象或者调用了其reset()方法时,该

Android Mediaplayer本地音乐播放器(绑定服务)

本文章介绍MediaPlayer本地音乐播放器,而当应用程序不再位于前台且没有正在使用它的活动时,为了确保音频继续播放,我们需要建立一个服务Service. Activity与绑定服务Service之间的交互是本文章的重点(这里需要说明一点的是,Activity不能直接访问服务对象中的方法,所以才有了我们一下的介绍,这也是为服务的安全等方面的考虑). 直接上代码: 布局文件:activity_main: <LinearLayout xmlns:android="http://schemas