gpt4 book ai didi

android - App MediaRecorder 程序 ANR

转载 作者:搜寻专家 更新时间:2023-11-01 08:05:45 25 4
gpt4 key购买 nike

我这样创建应用程序:

开始录制代码

public static void startRecording() {

if (recordTime == 0) {
if (null == mr) {
mr = new MediaRecorder();
}
path = new File(Environment.getExternalStorageDirectory(),
"myRecording.3gp");
mr.reset();

获取 ΪMicphone 音乐音量

mr.setAudioSource(MediaRecorder.AudioSource.MIC);
mr.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
mr.setOutputFile(path.getAbsolutePath());
mr.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);

try {
mr.prepare();
} catch (IOException e) {
}
mr.start();
Record.recordTime = 1;
}
}

结束录制

public static void stopRecording() {
if (mr != null) {
// mr.reset();
mr.stop();
mr.release();
mr = null;
Record.recordTime = 0;
}

}

我重复快速通话录音我反复快速调用录音并停止录音过程,会出现ANR现象。谁知道是什么问题?
提前致谢!

最佳答案

好吧...这篇文章有点旧,但由于我有一个非常相似的案例,所以发布了问题的解释here对我来说很有意义。

当您停止录制时,视频将保存在手机内存(内部或 SD 卡)中。由于这是一个繁重的 I/O 操作,应用程序可能会在一段时间内没有响应,从而导致 ANR。

我不知道,但你试过把停止点放在不同的线程上吗?这可能对您有用。

    public static void stopRecording() {
if (mr != null) {
new Thread(new Runnable() {
@Override
public void run() {
mr.stop();
mr.release();
mr = null;
Record.recordTime = 0;
}
}).start();
}
}

关于android - App MediaRecorder 程序 ANR,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14497608/

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