gpt4 book ai didi

android - 有没有办法同时拥有多个录音机?

转载 作者:太空狗 更新时间:2023-10-29 14:50:40 31 4
gpt4 key购买 nike

我正在尝试同时使用多个录音机。

我尝试了 AudioRecord 和 MediaRecorder 的不同用法,也尝试了 visualizer,然后我意识到不能用于 Mic。我在这里阅读了很多相关问题,但仍然没有任何帮助。

根据我在 StackOverFlow 中阅读的内容,我了解到它可能与物理兼容性有关,因此我创建了这个小应用程序,它会尝试使用 MediaRecorder 从两个不同的线程录制音频,并在不同的 Android 设备上对其进行测试。几种类型的三星、htc、lg、华为,甚至一些不太流行的中国设备。唯一能让两个录音机同时工作的设备是一部名为“Macoox MC-X9”的手机。我确保我的应用程序运行正常,结果确实如其所愿。

这是记录线程的示例:

private void startRecording(final MediaRecorder mRecorder, final int which){
Log.d(TAG, "Record started : " + which);
try {
//mRecorder = new MediaRecorder(); //it's done somewhere else
mRecorder.setAudioSource(MediaRecorder.AudioSource.DEFAULT);
mRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
mRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
mRecorder.setMaxDuration(60 * 1000);

mRecorder.setOnErrorListener(new MediaRecorder.OnErrorListener() {
@Override
public void onError(MediaRecorder mr, int what, int extra) {
stopRecording(mRecorder, which);
}
});

mRecorder.setOnInfoListener(new MediaRecorder.OnInfoListener() {
@Override
public void onInfo(MediaRecorder mr, int what, int extra) {
if (what == mr.MEDIA_RECORDER_INFO_MAX_DURATION_REACHED) {
stopRecording(mRecorder, which);
Log.d(TAG, "Max duration reached !");
}
}
});

String mFileName = which + "_" + getTime() + mFileExt;
mRecorder.setOutputFile(recDir.getAbsolutePath() + "/" + mFileName);
mRecorder.prepare();
mRecorder.start();
makeToast("Record started : " + which);
} catch (Exception e) {
Log.d(TAG, e.toString());
makeToast("Error");
stopRecording(mRecorder, which);
}
}

现在我有一个问题,是否可以通过任何方式改变其他设备的兼容性?我的意思是,例如我可以简单地 root 三星设备并在需要时编辑任何相关内容。我只是希望能够通过任何必要的方式启用此选项。

感谢任何帮助。

最佳答案

您要查找的内容在很大程度上取决于手机的硬件和驱动程序。因此,您将很难对其进行篡改。

您是否考虑过录制一个音频文件并多次打开它?对我来说这听起来是最好的解决方案。

关于android - 有没有办法同时拥有多个录音机?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35669072/

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