• Android MediaPlayer


    MediaPlayer

    MediaPlayer类可以用来播放音频、视频和流媒体,MediaPlayer包含了Audio和Video的播放功能。

    在Android的界面上,Music和Video两个应用程序都是调用MediaPlayer实现的。

    首先来看看MediaPlayer的生命周期:

    MediaPlayer state diagram.png

    从MediaPlayer的生命周期图或者说是状态转移图上来看:

    1. 当一个MediaPlayer对象别创建或者调用reset()方法之后,它处于空闲状态,在调用release()方法后,才会处于结束状态。
      • 一个新建的MediaPlayer对象在调用getCurrentPosition(), getDuration(), getVideoHeight(), getVideoWidth(), setAudioStreamType(int), setLooping(boolean), setVolume(float,float), pause(), start(), stop(), seekTo(int), prepare(), prepareAsync()方法时,不会触发OnErrorListener.onError()事件,但是MediaPlayer对象如果调用了reset()方法后,再使用这些方法则会触发OnErrorListener.onError()事件。
      • 当MediaPlayer对象不再被使用时,最好通过release()方法来释放,使其处于结束状态,以免造成不必要的错误。当MediaPlayer处于结束状态是,便不能再使用。
      • MediaPlayer对象被新建时处于空闲状态,如果通过creat()方法创建之后便处于准备状态。
    2. 一般情况下,一些常用的播放控制操作可能因为音频、视频的格式不被支持或者质量较差以及流超时,也有可能由于开发者的疏忽使得MediaPlayer对象处于无效状态而导致错误。这时可以通过注册setOnErrorListener()方法实现OnErrorListener.onError()方法来监控这些错误。如果发生了错误,MediaPlayer对象将处于错误状态,可以使用reset()方法来恢复错误。
    3. 任何MediaPlayer对象都必须先处于准备状态,然后才开始播放。
    4. 要开始播放MediaPlayer对象都必须成功调用start()方法。可以通过isPlaying()方法来检测当前是否正在播放。
    5. 当MediaPlayer对象在播放时,可以进行暂停和停止等操作,pause()方法暂停播放,stop()方法停止播放。处于暂停状态时可以通过start()方法来恢复播放,但是处于停止状态则必须先调用pause()方法处于准备状态,然后再通过start()方法来开始播放。
    6. 可以通过setLooping(boolean)方法来设置是否循环播放。

    下边是MediaPlayer提供的常用方法:

    方法 说明
    MediaPlayer 构造方法
    create 创建一个要播放的多媒体
    getCurrentPosition 得到当前播放位置
    getDuration 得到文件的时间
    getVideoHeight 得到视频的高度
    getVideoWidth 得到视频的宽度
    isLooping 是否循环播放
    isPlaying 是否正在播放
    pause 暂停
    prepare 准备(同步)
    prepareAsync 准备(异步)
    release 释放MediaPlayer对象
    reset 重置MediaPlayer对象
    seekTo 指定播放的位置(以毫秒为单位的时间)
    setAudioStreamType 设置流媒体的类型
    setDataSource 设置多媒体数据来源
    setDisplay 设置用SurfaceHolder来显示多媒体
    setLooping 设置是否循环播放
    setOnButteringUpdateListener 网络流媒体的缓冲监听
    setOnErrorListener 设置错误信息监听
    setOnVideoSizeChangedListener 视频尺寸监听
    setScreenOnWhilePlaying 设置是否使用SurfaceHolder来保持屏幕显示
    setVolume 设置音量
    start 开始播放
    stop 停止播放

    至此,可以得出Android中通过MediaPlayer来播放音乐的步骤:

     MediaPlayer mp = new MediaPlayer();//构建MediaPlayer对象
     mp.setDataSource("/sdcard/test.mp3");//设置文件路径
     mp.prepare();//准备
     mp.start();//开始播放
    
  • 相关阅读:
    Linux下判断字符串长度
    Linux下使用xargs得到字符串作为参数进行输出、awk得到字符串作为参数进行输出
    Linux下使用xargs将多行文本转换成一行并用tr实现逗号隔开
    Linux下使用split按行数进行切割
    Maven设置snapshot无法在远程仓库下载的问题解决
    Intellij IDEA自动生成serialVersionUID
    Spring中@Value用法收集
    Http报头Accept与Content-Type的区别(转)
    Linux下Shell的for循环语句
    Shell脚本中的分号使用
  • 原文地址:https://www.cnblogs.com/wangluochong/p/2757976.html
Copyright © 2020-2023  润新知