MediaPlayer切换音频资源代码

这篇博客介绍了如何在Android应用中使用MediaPlayer类来切换和播放音频资源。代码示例展示了如何创建MediaPlayer对象,检查文件路径,设置音频流类型,以及处理播放状态。遇到文件不存在的情况,提供了错误提示和相应处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

private MediaPlayer mMediaPlayer;

        String path = Environment.getExternalStorageDirectory()
                + "/anticipation.ogg";
        File fp = new File(path);
        if (fp.exists()) {
            Uri alert = Uri.parse(path);
            mMediaPlayer = MediaPlayer.create(this, alert);
            mAudioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
            mSaveVolume = mAudioManager
                    .getStreamVolume(AudioManager.AUDIOFOCUS_GAIN_TRANSIENT_MAY_DUCK);
            mMaxVolume = mAudioManager
                    .getStreamMaxVolume(AudioManager.AUDIOFOCUS_GAIN_TRANSIENT_MAY_DUCK);
            mSeekBar.setMax(mMaxVolume);
            mSeekBar.setProgress(10);
            mProgress = 10;
            startPlay();
        } else {
            showToast("读取音频文件失败!请确认音频文件是否存在!");
            onFinish(false);
        }

    public void startPlay() {
        if (mMediaPlayer != null) {
            try {
                mMediaPlayer
                        .setAudioStreamType(AudioManager.AUDIOFOCUS_GAIN_TRANSIENT_MAY_DUCK);
                mMediaPlayer.setLooping(true);
                mMediaPlayer.start();
            } catch (Exception e) {
                e.printStackTrace();
            }
        } else {
            showToast();
        }
    }



           if(mMediaPlayer.isPlaying()){

                mMediaPlayer.stop();
                mMediaPlayer.seekTo(0);//恢复播放位置 否则无法播放
            }
            try {//设置要播放的音频文件路径
                mMediaPlayer.setDataSource(Environment.getExternalStorageDirectory()+"/LEFT.WAV");//sdcard根目录
                mMediaPlayer.prepare();
                mMediaPlayer.start();
                } catch (Exception e) {
            }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值