我试图同时使用多个录音机。
我尝试了AudioRecord和MediaRecorder的不同用法,还尝试了可视化工具,然后我意识到它不能用于Mic。我在这里读了很多相关的问题,但仍然没有帮助我做到这一点。
从我在StackOverFlow中读到的内容中我了解到它可能与物理兼容性有关,所以我创建了这个小应用程序,尝试使用MediaRecorder从两个不同的线程录制音频并在不同的Android设备上进行测试。几种类型的三星,htc,lg,huawei甚至一些不那么受欢迎的中国设备。让两台录像机同时工作的唯一设备是名为" 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);
}
}
现在我有一个问题,是否有可能更改其他设备'以任何方式兼容?我的意思是,例如我可以简单地根三星设备并根据需要编辑任何相关内容。我只是希望能够以任何必要的方式启用此选项。
我感谢任何帮助。
答案 0 :(得分:0)
您正在寻找的内容在很大程度上取决于手机的硬件和驱动程序。所以你将很难篡改它。
您是否考虑过录制一个音频文件并多次打开?听起来对我来说是最好的解决方案。