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

标签 android audio-recording

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

我尝试了 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/

相关文章:

用于检查文本行的 Java 模式

android - 如何将多个 project_number/sender id 放入 google-services.json

android - 使用 ButterKnife 公开成员变量

c# - C#Naudio音频电平捕获和显示,仅在打开录音属性时有效

Android:在Android中录制音频然后将音频读入python

java - 如何解决这个错误: Android resource linking failed?

Android:如何使用自定义音轨录制视频?

javascript - 有没有办法使用 WebView 将 JavaScript 中的对象(类实例)提取到 Android?

android - 如果下一页仍在 Android 中创建,如何防止 ViewPager 显示下一页

java - 在 java 中录制音频并实时确定是否播放了 x 频率的音调(如果播放)