Android中使用MediaPlayer播放音乐状态转换
来源:互联网 发布:华晨宇全球歌迷会淘宝 编辑:程序博客网 时间:2024/04/29 05:53
一、MediaPlayer的状态
空闲、初始化、正在准备、已经准备、开始、暂停、停止、播放完成、出错、结束。
二、空闲状态
1、在创建对象或者调用对象的reset()方法进入该状态。
2、在该状态下,给对象设置了出错监听,调用对象的以下方法将会回调监听里面的onError()方法:getCurrentPosition()
,getDuration()
,getVideoHeight()
,getVideoWidth()
,setAudioStreamType(int)
,setLooping(boolean)
,setVolume(float, float)
,pause()
,start()
,stop()
,seekTo(int)
,prepare()
orprepareAsync()
;如果对象没有调用reset方法,则状态不发生变化,如果对象调用了reset()方法,则状态回进入出错状态。
三、初始化状态
当对象在空闲状态下,调用了对象的setDataSource()方法进入该状态。
四、正在准备状态
1、 当对象在初始化状态下,调用了对象的prepareAsync()方法进入该状态;
2、当对象在停止状态下,调用了对象的prepareAsync()方法进入该状态。
五、已经准备状态
1、当对象在初始化状态下,调用了对象的prepare()方法进入该状态;
2、对象可以在正在准备状态下,调用对象的onPreparedListener()方法,给该对象设置一个准备监听,当准备完成之后,系统会会调用该监听的onPrepared()方法,从而进入该状态;
3、当对象已经在该状态下,调用了对象的seekTo()方法,状态没有发生改变;
4、当对象在停止状态下,调用了prepare()方法也会进入该状态。
5、使用静态方法create()创建对象时,创建出来的对象就在该状态。
六、开始状态
1、 当对象在已经准备的状态下,调用了对象的start()方法进入该状态;
2、对象已经在该状态下,调用seekTo()方法,或者再次调用了start()方法,状态没有发生改变。
3、当对象已经在该状态下,播放完成之后且Looping设置为true时,状态没有发生改变。
4、当对象在暂停状态下,调用了start()方法进入该状态。
5、当对象在已经播放完成状态下,调用了start()方法进入该状态,音乐从头播放。
6、如果对象已经在开始状态下,多次调用start()方法是没有影响的。
七、暂停状态
1、当对象在开始状态下,调用了pause()方法进入该状态;
2、当对象已经在该状态下,调用了seekTo()方法或者再次调用了pause()方法,状态没有发生改变。
3、当对象已经在暂停状态下,多次调用pause()方法没有影响。
八、停止状态
1、当对象在开始状态下,调用了stop()方法进入该状态;
2、当对象在暂停状态下,调用了stop()方法进入该状态;
3、当对象在准备完成状态下,调用了stop()方法进入该状态。
4、当对象在播放完成状态下,调用了stop()方法进入该状态。
5、当对象在停止状态下,是不能再开始播放了,除非再次调用prepare()或者prepareAsync()方法进入准备状态。
6、当对象在停止状态下,多次调用stop()方法是没有影响的。
九、播放完成状态
1、当对象在开始状态下,一直将音乐播放完成且是否循环播放设置为false进入该状态。
2、已经在该状态下,用户调用了对象的seekTo()方法,状态未发生改变,只是在调用了start()方法后,是从seekTo()设置的位置开始播放。
十、出错状态
1、 给对象设置出错监听onErrorListener(),当回调onError()方法时,进入出错状态。
2、即使没有设置onErrorListener(),当错误发生时,也会进入出错状态。
3、为了能从出错状态恢复,可以调用对象的reset()方法,让该对象进入空闲状态。
4、当对象在没有在初始化状态,停止状态,正在准备状态,或者已经准备状态下,调用了prepare()或者prepareAsync()方法,程序会抛出IllegalStateException异常。
5、如果不是在空闲状态下调用了setDataSource()方法,则程序会抛出IllegalStateException异常。
十一、结束状态
当对象调用了release()方法,进入结束状态。
十二、官网上状态转化图
- Android中使用MediaPlayer播放音乐状态转换
- Android:使用MediaPlayer播放本地音乐
- android MediaPlayer 音乐播放
- android-MediaPlayer音乐播放
- android mediaPlayer 播放音乐
- Android音乐播放-MediaPlayer
- Android MediaPlayer 音乐播放
- Android MediaPlayer实现音乐播放
- 【Android Dev Guide - 04】 - Media - 学习使用MediaPlayer播放音乐
- 【Android Dev Guide - 04】 - Media - 学习使用MediaPlayer播放音乐
- Android仿虾米音乐播放器之MediaPlayer使用
- android的MediaPlayer类的使用(音乐播放器)
- android:使用mediaplayer播放res/raw文件夹中的音乐
- 【Android Dev Guide - 04】 - Media - 学习使用MediaPlayer播放音乐
- 在网页中使用mediaplayer和realplayer播放音乐
- 使用MediaPlayer在Service中后台播放网络音乐
- android中使用MediaPlayer播放视频
- android 利用 MediaPlayer 类播放音乐
- 登山-C#-再讨论事件,理清事件和委托的关系,理清EventHandler<T>和传统事件的关系
- Eclipse/MyEclipse 最最常用的快捷键
- <21.01>MongoDB数据库
- Map排序,获取map的第一值,根据value取key等操作(数据预处理)
- Mysql安装总结
- Android中使用MediaPlayer播放音乐状态转换
- 微软的dotnet-new工具可以使创建JavaScript Web 程序变得更简单
- 多用户并发测试程序
- POJ 1860 Currency Exchange(最短路)
- Request请求参数
- Hibernate继承映射多态的详解
- 使用NSArray类别里面的方法排序(方法一:使用NSSortDescriptor)
- 装饰模式的理解
- 深入理解C语言指针(三)