我正嘗試在同一時間使用多個錄音機。有什麼辦法可以同時安裝多個錄音機嗎?
我嘗試了AudioRecord和MediaRecorder的不同用法,也嘗試了可視化器,然後我意識到它不能用於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);
}
}
現在我有一個問題,是否有可能以任何方式更改其他設備的兼容性?我的意思是,例如,我可以簡單地根源三星設備,並編輯任何相關的,如果需要。我只是希望能夠通過任何必要的方式啓用此選項。
我很感激任何幫助。
不確定,但我認爲這取決於硬件。 –
我真的很高興,如果有人能夠命名另一個具有此能力並且比我提到的更受歡迎的手機。無所謂多少錢;) –
爲什麼你想這樣做?這兩個文件將包含幾乎相同的內容! – suitianshi