android--MediaRecorder.stop()报错java.lang.IllegalStateException

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
当在Android Studio中使用MediaPlayer播放本地音频时,如果在第二次调用mediaPlayer.setDataSource()时出现java.lang.IllegalStateException错误,可能是由于MediaPlayer对象已经处于播放状态或已经完成了播放。为了解决这个问题,可以在调用setDataSource()之前调用mediaPlayer.reset()方法,以确保MediaPlayer对象处于空闲状态。具体代码如下所示: ```java mediaPlayer.reset(); // 重置MediaPlayer对象 mediaPlayer.setDataSource(context, uri); // 设置数据源 mediaPlayer.prepare(); // 准备MediaPlayer对象 mediaPlayer.start(); // 开始播放 ``` 此外,如果您使用的是MediaRecorder来录制音频,也可能会遇到java.lang.IllegalStateException错误。这通常是由于MediaRecorder对象没有正确配置或状态不正确导致的。为了解决这个问题,您可以按照以下步骤进行操作: 1.确保在使用MediaRecorder之前,您已经获取了录音权限。 2.在开始录音之前,调用MediaRecorder对象的setAudioSource()方法来设置音频源。 3.调用setOutputFormat()方法来设置输出格式。 4.调用setOutputFile()方法来设置输出文件路径。 5.调用prepare()方法来准备MediaRecorder对象。 6.调用start()方法来开始录音。 具体代码如下所示: ```java MediaRecorder recorder = new MediaRecorder(); recorder.setAudioSource(MediaRecorder.AudioSource.MIC); // 设置音频源 recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP); // 设置输出格式 recorder.setOutputFile(outputFile); // 设置输出文件路径 recorder.prepare(); // 准备MediaRecorder对象 recorder.start(); // 开始录音 ```

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值