gpt4 book ai didi

Android Soundpool.play() 在发布版本中不起作用

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:53:37 26 4
gpt4 key购买 nike

我正在尝试构建一个录制声音然后回放的应用程序。录音部分工作完美,但当我尝试重放声音时,它什么也没做。当我在调试器中运行它并逐步完成播放音频的步骤时,它就可以工作了。当我删除所有断点并在调试中运行程序时,它没有。

问题可能是由于某些在后台完成但在我尝试运行音频之前未完成的事情引起的,但我不完全确定。

如有任何帮助,我们将不胜感激。

这里是源代码的相关部分。

创建音池

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

从音池播放

int soundId = mSoundPool.load(mAudioRecorder.stop(), 0);
if(soundId > 0){
mSoundPool.play(soundId, 0.99f, 0.99f, 0, -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(...)执行的功能。

我在执行 Activity/fragment 之前通过在菜单 Activity 中加载声音解决了这个问题,我将在其中播放一些音乐 SoundPool.play(...)功能。

在 DEBUG 模式下应用程序有很多时间来执行 SoundPool.load(...)函数,所以它可以工作。

关于Android Soundpool.play() 在发布版本中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6600434/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com