zoukankan      html  css  js  c++  java
  • Android_MediaPlayer生命周期

    MediaPlayer的生命周期包括10种状态,每种状态下可以调用相应的方法来实现音/视频文件的管理和播放。

    Idle状态

    使用new方法创建一个MediaPlayer对象或者调用了其reset方法时,该MediaPlayer对象处于idle状态

    但通过2种不同方式进入idle状态还是有区别的,主要体现为:在这个状态下调用了getDuration等方法,若是通过reset方法进入idle状态会触发OnErrorListener.onError,并且MediaPlayer会进入Error状态;如果是新创建的MediaPlayer对象,则不会触发onError,也不会进入Error状态。

    End状态

    通过release方法可以进入End状态,只要MediaPlayer对象不再被使用,就应当尽快将其通过release方法释放,以释放其占用的软、硬件资源,这其中有些资源是互斥的,如果MediaPlayer进入End状态,那么就不会进入其它状态了

    Initialized状态

    这个状态比较简单,MediaPlayer对象调用了setDataSource方法就进入Initialized状态,表示此时的播放文件已经设置好了。

    Prepared状态

    初始化完成之后,还需要通过调用prepare或者prepareAsync方法进行准备,这两个方法一个是同步的一个是异步的,只有进入了Prepared状态,才表明MediaPlayer到目前位子都工作正常,可以进行音乐文件的播放。

    Preparing状态

    主要是与prepareAsync异步方法陪不,如果异步准备完成,会触发OnPreparedListener.onPrepared,进而进入Prepared状态

    Started状态

    MediaPlayer准备完成后,通过调用start方法,将进入Started状态,所谓Started状态,也即是播放中状态,可以使用isPlaying方法测试是否处于Started状态。

    如果播放完毕,而又设置了循环播放,则MediaPlayer仍然会处于Started状态,类似的,如果在该状态下调用了seekTo或者start方法均可以是MediaPlayer停留在Started状态

    Paused状态

    Started状态下调用pause方法可以暂停播放,从而进入Paused状态。MediaPlayer暂停后再次调用start方法可以继续进行播放,并转到Started状态。暂停状态下可以调用seekTo方法,这是不会改变状态的。

    Stop状态

    Started状态或Paused状态下均可以调用stop方法停止播放并进入Stop状态,而处于Stop状态的MediaPlayer要想重新播放,则要通过调用prepare或者prepareAsync方法返回到先前的Prepared状态才可以重新开始

    mp.stop()

    try {

    mp.prepare();

    }

    PlaybackCompleted状态

    文件正常播放完毕,而又没有设置循环播放的就进入该状态,并出触发onCompletionListener接口中的onCompletion方法。此时调用start方法重新从头播放文件,也可以调用stop方法停止播放,或者调用seekTo方法来重新定位播放位置

    Error状态

    由于某种原因MediaPlayer出现错误,则会触发OnErrorListener.onError回调方法,此时MediaPlayer即进入Error状态。及时捕捉并处理这些信息,可以帮助应用程序释放相关的软、硬件资源。

    如果MediaPlayer进入了Error状态,可以通过调用reset方法来回复,使得MediaPlayer重新返回到Idle状态

    Linux内核代码及解析 0分下载:http://download.csdn.net/detail/zqiang_55/4392290

    bash shell 教程  0分下载:http://download.csdn.net/detail/zqiang_55/4406949

  • 相关阅读:
    OCP-1Z0-052-V8.02-116题
    OCP-1Z0-052-V8.02-6题
    OCP-1Z0-052-V8.02-5题
    使用rman恢复控制文件
    Matlab-质点的运动
    Matlab中checkerboard-创建棋盘图像(二)
    OCP-1Z0-052-V8.02-4题
    OCP-1Z0-052-V8.02-3题
    Matlab中checkerboard-创建棋盘图像(一)
    OCP-1Z0-052-V8.02-1题
  • 原文地址:https://www.cnblogs.com/wuyida/p/6300635.html
Copyright © 2011-2022 走看看