安卓mediaplayer(2)
来源:互联网 发布:炭知天下主要在哪里 编辑:程序博客网 时间:2024/06/14 02:39
有两种方式(同步到异步)可以达到Prepared状态:一旦调用prepare()(同步),一旦方法调用返回,将对象传递到Prepared状态,或者调用prepareAsync()异步),在内部播放器引擎继续处理其余的准备工作直到准备工作完成之前,首先将对象传输到准备状态(这几乎正确地发生)。当准备完成或prepare()调用返回时,如果OnPreparedListener通过setOnPreparedListener(android.media.MediaPlayer.OnPreparedListener)事先注册,内部播放器引擎将调用OnPreparedListener接口的onPrepared()的用户提供的回调方法。
重要的是要注意,准备状态是一个暂态,而MediaPlayer对象处于准备状态时调用任何具有副作用的方法的行为是未定义的。
如果在任何其他状态下调用prepare()或prepareAsync()),则抛出IllegalStateException异常。
在Prepared状态下,可以通过调用相应的set方法来调整音频/音量,screenOnWhilePlaying,循环等属性。
在“开始”状态下,如果已经通过setOnBufferingUpdateListener(OnBufferingUpdateListener)事先注册了OnBufferingUpdateListener,则内部播放器引擎将调用用户提供的OnBufferingUpdateListener.onBufferingUpdate()回调方法。此回调允许应用程序在流式传输音频/视频时跟踪缓冲状态。
调用start()对已处于“已启动”状态的MediaPlayer对象没有影响。
调用start()恢复播放暂停的MediaPlayer对象,并且恢复的播放位置与暂停的播放位置相同。当对start()的调用返回时,暂停的MediaPlayer对象将返回到Started状态。
调用pause()对已处于“已暂停”状态的MediaPlayer对象没有影响。
调用stop()停止播放,并使MediaPlayer处于“已启动”,“已暂停”,“准备”或“回放完成”状态,以进入“停止”状态。
一旦处于停止状态,播放无法启动,直到prepare()或prepareAsync()被调用来再次将MediaPlayer对象设置为“准备”状态。
调用stop()对已经处于停止状态的MediaPlayer对象没有影响。
虽然异步的seekTo(int)调用返回正确的方式,实际的查找操作可能需要一段时间才能完成,特别是对于流式传输的音频/视频。当实际搜索操作完成时,如果已经通过setOnSeekCompleteListener(OnSeekCompleteListener)事先注册了OnSeekCompleteListener,则内部播放器引擎将调用用户提供的OnSeekComplete.onSeekComplete()。
请注意,seekTo(int)也可以在其他状态下调用,如Prepared,Paused和PlaybackCompleted状态。
此外,可以通过调用getCurrentPosition()来检索实际的当前播放位置,这有助于诸如需要跟踪播放进度的音乐播放器之类的应用。
当播放达到流的结束时,播放完成。
如果循环模式设置为truewith setLooping(boolean),MediaPlayer对象将保持在“已启动”状态。
如果循环模式设置为false,则如果通过setOnCompletionListener(OnCompletionListener)事先注册了OnCompletionListener,则播放器引擎将调用用户提供的回调方法OnCompletion.onCompletion()。回调的调用表明对象现在处于PlaybackCompleted状态。
- 安卓mediaplayer(2)
- 安卓mediaplayer(1)
- 安卓播放视频MediaPlayer
- 安卓基础 论MediaPlayer的应用(一)
- 安卓基础 论MediaPlayer的应用(二)
- 安卓基础 论MediaPlayer的应用(三)
- 安卓MediaPlayer和VideoView简单使用
- 安卓本地视频播放SurfaceView+MediaPlayer
- Android 安卓使用MediaPlayer播放列表视频
- 安卓学习之路_20140423_GridView、 SeekBar、MediaPlayer
- 安卓开发——mediaplayer与soundpool
- 安卓 MediaPlayer 获取MP3 播放时长有关问题
- 安卓使用MediaPlayer和SurfaceView播放视频
- 安卓使用MediaPlayer自定义音频视频播放器
- 安卓开发:弹出自定义对话框自动播放视频(仿视频广告效果,使用mediaplayer和surfaceview做播放器)
- 安卓游戏开发------播放背景音乐和音效(MediaPlayer和SoundPool)
- 安卓学习之路_20140424_AudioManager、MediaPlayer的综合运用、ScrollView、Gallery
- 安卓mediaplayer应用介绍,简单几步了解其流程
- 彻底理解ThreadLocal
- Android正则表达式----常用正则积累
- oh,my goddess
- MySQL存储过程详解
- 职住分离 街景处理
- 安卓mediaplayer(2)
- 大型网站架构之分布式消息队列
- 在创建第一个实例或引用任何静态成员之前,将自动调用静态构造函数来初始化类?
- 页面各种禁止方法
- 51NOD 1554 欧姆诺姆和项链 【kmp】
- JQuery常用方法
- 一个多种登录方式的解决办法
- CocoaPods创建私有库步骤
- 自动存储、静态存储、动态存储