Android 本地音频播放 MediaPlayer使用方法

程序的运行效果:

效果预览

首先是布局文件:

<TextView
        android:text="@string/music_name"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" />

    <SeekBar
        android:id="@+id/sbar_mp_audio"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" />

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content">


        <Button
            android:id="@+id/btn_mp_startAudio"
            android:layout_width="wrap_content"
            android:text="@string/startAudio"
            android:layout_height="wrap_content" />

        <Button
            android:id="@+id/btn_mp_pauseAudio"
            android:layout_width="wrap_content"
            android:text="@string/pauseAudio"
            android:layout_height="wrap_content" />

        <Button
            android:id="@+id/btn_mp_endAudio"
            android:layout_width="wrap_content"
            android:text="@string/endAudio"
            android:layout_height="wrap_content" />

    </LinearLayout>

然后是代码部分:

播放音频单击事件


if(!isPause){//如果不是暂停状态
    mediaPlayer = new MediaPlayer();//初始化mediaPlayer
    mediaPlayer.reset();//重置mediaPlayer播放状态为初始状态
    mediaPlayer = MediaPlayer.create(this,R.raw.suanshenmenanren);//装载需要播放的音频文件
    m_sbarAudio.setMax(mediaPlayer.getDuration());//设置SeekBar的长度为mediaPlayer的音频长度(获取的长度单位为毫秒)
}
mediaPlayer.start();

暂停音频事件:

mediaPlayer.pause();//暂停当前银屏
isPause = true;//设置为暂停状态

停止音频事件:

mediaPlayer.stop();//停止当前音频
isPause = false;//设置为不是暂停状态

SeekBar拖动播放音频事件:

setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
            @Override
            public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {

            }

            @Override
            public void onStartTrackingTouch(SeekBar seekBar) {

            }

            @Override
            //停止滑动后触发
            public void onStopTrackingTouch(SeekBar seekBar) {
                mediaPlayer.seekTo(m_sbarAudio.getProgress());//从滑块的位置开始播放音频(具体步骤:音频-调到-滑块停止的位置-播放)
            }
        });

getDuration()方法:

    /**
     * Gets the duration of the file.
     * 获取文件的持续时间
     *
     * @return the duration in milliseconds, if no duration is available
     * 以毫秒为单位的时间,如果没有持续可用
     *         (for example, if streaming live content), -1 is returned.
     * 将返回-1
     */
    public native int getDuration();
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值