Android Soundpool.play()无法在release buld中运行

Android Soundpool.play()无法在release buld中运行,第1张

概述我正在尝试构建一个记录声音的应用程序然后播放它们. 录音部分工作得很好但是当我尝试重放声音时它什么也没做. 当我在调试器中运行它并通过步骤播放音频时,它可以工作. 当我删除所有断点并在调试中运行程序时,它没有. 问题可能是由于在后台完成的一些事情并没有在我尝试运行音频之前完成,但我不完全确定. 任何帮助将不胜感激. 以下是源代码的相关部分. 创建Soundpool mSoundPool = new 我正在尝试构建一个记录声音的应用程序然后播放它们.
录音部分工作得很好但是当我尝试重放声音时它什么也没做.
当我在调试器中运行它并通过步骤播放音频时,它可以工作.
当我删除所有断点并在调试中运行程序时,它没有.

问题可能是由于在后台完成的一些事情并没有在我尝试运行音频之前完成,但我不完全确定.

任何帮助将不胜感激.

以下是源代码的相关部分.

创建Soundpool

mSoundPool = new SoundPool(16,AudioManager.STREAM_MUSIC,0);

从soundpool播放

int soundID = mSoundPool.load(mAudioRecorder.stop(),0);if(soundID > 0){    mSoundPool.play(soundID,0.99f,-1,1.0f);}

Audiorecorder.java的输出文件是.mp4

mRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);mRecorder.setoutputFormat(MediaRecorder.OutputFormat.MPEG_4);mRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AAC);public String stop() throws IOException {    mRecorder.stop();    return mPath;}
解决方法 昨天我遇到了同样的问题 – 在RELEASE模式下不能正常工作的原因是你必须等待SoundPool.load(…)函数执行.

我在执行活动/片段之前在菜单活动中加载声音解决了这个问题,我将使用SoundPool.play(…)函数播放一些音乐.

在DEBUG模式下,app有很多时间来执行SoundPool.load(…)函数,所以它可以正常工作.

总结

以上是内存溢出为你收集整理的Android Soundpool.play()无法在release buld中运行全部内容,希望文章能够帮你解决Android Soundpool.play()无法在release buld中运行所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1128373.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-30
下一篇 2022-05-30

发表评论

登录后才能评论

评论列表(0条)

保存