gpt4 book ai didi

Android MediaRecorder 错误(1, -2147483648)

转载 作者:行者123 更新时间:2023-11-29 15:26:14 25 4
gpt4 key购买 nike

我正在使用 MediaRecorder 录制音频并将其保存为带有 AAC 音频的 .mp4。除了搭载 Android 4.1 的 Nexus S 之外,在我尝试过的所有设备上一切正常。在这些设备上,我要么在 start() 上收到错误(1,-2147483648)(我认为),要么继续正常,但输出文件始终为空。我有必要的权限,因为该应用程序可以在其他设备上运行。

mRecorder.reset();
mRecorder.setOnErrorListener(new MediaRecorder.OnErrorListener() {

@Override
public void onError(MediaRecorder mr, int what, int extra) {
Log.e("sagasg", what + " " + extra);

}
});
mRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
mRecorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
mRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AAC);
mRecorder.setAudioSamplingRate(SAMPLING_RATE);
mRecorder.setAudioEncodingBitRate(BIT_RATE);
mFileName = "unnamed-" + mTimeStarted.year + "-" + mTimeStarted.month + "-" + mTimeStarted.monthDay
+ "-" + mTimeStarted.hour + "-" + mTimeStarted.minute + "-" + mTimeStarted.second;

mRecorder.setOutputFile(mFilePath + mFileName + mExtension);

try {
mRecorder.prepare();
} catch (IOException e) {
Log.e(LOG_TAG, "prepare() failed");
}

mRecorder.start();

最佳答案

我通过随机更改设置解决了这个问题。当我删除

时它开始工作
mRecorder.setAudioSamplingRate(SAMPLING_RATE);

采样率在哪里

public static final int SAMPLING_RATE = 48000;

根据文档,AAC 支持 8-48 kHz,但出于某种原因它不支持。现在我只需要修复另一个只出现在 Nexus S 上的错误。现在我明白为什么开发人员更喜欢 iOS 了。

编辑:现在它不会因为这个选项而崩溃,只是录音是一个空文件。尝试了其他值,例如 24000。结果相同。我必须坚持使用默认采样率。

关于Android MediaRecorder 错误(1, -2147483648),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12736033/

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