简单的音频播放功能MediaPlayer使用中所遇到的坑。

在使用MediaPlayer实现音频播放功能时,遇到播放完成回调重复、重新播放报错以及Activity销毁时的错误。问题主要集中在MediaPlayer的reset()方法使用不当。解决方案包括在播放完成回调中避免调用reset(),在重新播放前调用reset(),以及在Activity销毁时正确释放MediaPlayer资源。
摘要由CSDN通过智能技术生成

所遇到的问题 1、音频播放完成后 播放完成监听回调

 public void onCompletion(MediaPlayer mp) {}

方法走了两次。

2、点击再次重新播放时,报

IllegalStateException

错误。

3、销毁activity时依然报2中的错误。

 

首先贴出一个工具类的部分代码

//单例
public static VoiceMediaPlayer getInstance(){
        if(instance==null){
            synchronized (VoiceMediaPlayer.class){
                if(instance==null){
                    instance=new VoiceMediaPlayer();
                }
            }
        }
        return instance;
    }


//初始化
 public void initMediaPlayer(){
        if(mediaPlayer==null){
            mediaPlayer=new MediaPlayer();
        }
        mediaPlayer.setVolume(1.0f,1.0f);
        mediaPlayer.setLooping(false);
    }


//停止播放
 public void stopMediaPlayer(){
        mediaPlayer.stop();
        mediaPlayer.reset();
    }


//播放
 public void play(final String path
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值