2013-12-13 25 views
4

我希望有人可以幫助我解決這個問題。用摩托羅拉Moto G(或Moto X)錄製立體聲音頻

前段時間,我開發了一款應用程序,用於同時錄製前置麥克風和後置麥克風在智能手機中捕獲的聲音。基本上,我使下一個對象是這樣的:

AudioRecord audioRecord =新AudioRecord(MediaRecorder.AudioSource.CAMCORDER頻率AudioFormat.CHANNEL_IN_STEREO音頻編碼緩衝器大小) ;

它適用於索尼Xperia Neo V,但不適用於摩托羅拉Moto G(或Moto X I guess)。以一看文件,我看到了未來的攝像機標誌:以相同的方向相機(如果可用),否則主設備麥克風

麥克風音頻源。

摩托羅拉摩托G不具有攝像機的麥克風,但一個在頂部(索尼的Xperia具有在背部或攝像機話筒一個麥克風)。實際上,在Moto G上,我獲得了兩次相同的信號(前置麥克風捕獲的信號),根據文檔,這是正確的。

任何人都可以幫助我嗎?

回答

2

我有同樣的問題,我得到它使用48000 Hz的採樣率工作。我認爲這是可行的,因爲使用默認相機應用程序製作的視頻錄製以立體聲工作,並具有此採樣率。使用函數getMinBufferSize()時,還必須考慮此頻率。

這裏是我的設置:

private static final int RECORDER_BPP = 16; 
private static final int RECORDER_SAMPLERATE = 48000; 
private static final int RECORDER_CHANNELS = AudioFormat.CHANNEL_IN_STEREO; 
private static final int RECORDER_AUDIO_ENCODING = AudioFormat.ENCODING_PCM_16BIT; 

,然後我創建具有AudioRecord對象:

recorder = new AudioRecord(MediaRecorder.AudioSource.CAMCORDER, 
              RECORDER_SAMPLERATE, RECORDER_CHANNELS,RECORDER_AUDIO_ENCODING, bufferSize); 

我現在用的是摩托G,與奇巧安裝。