Android APIのAudioRecordクラスを使用してオーディオキャプチャアプリケーションを開発しようとしています.MediaRecorder.AudioSource.MICのオーディオソースを設定しますが、エコーキャンセルを使用しようとするとMediaRecorder.AudioSource.AudioSourceを設定します. VOICE_COMMUNICATION ソース、AudioRecorder オブジェクトが作成されると、IllegalArgumentException がスローされますが、理由はわかりません。
私のコードは次のとおりです。
private static final int SAMPLE_RATE = 16000;
private static final int BIT_ENCODING = AudioFormat.ENCODING_PCM_16BIT;
private static final int CHANNEL_CONFIGURATION = AudioFormat.CHANNEL_CONFIGURATION_MONO;
private int m_i32BufferSize;
private AudioRecord m_AudioRecorder;
public caudioCapture ()
{
super ();
m_i32BufferSize = AudioRecord.getMinBufferSize(SAMPLE_RATE, CHANNEL_CONFIGURATION, BIT_ENCODING);
//Create audio recorder object
try
{
m_AudioRecorder = new AudioRecord (MediaRecorder.AudioSource.VOICE_COMMUNICATION,SAMPLE_RATE,CHANNEL_CONFIGURATION,BIT_ENCODING,m_i32BufferSize);
}
catch (IllegalArgumentException e)
{
throw new IllegalArgumentException("Bad arguments on AudioRecorder creation", e);
}
私のAndroidマニフェストには次のものがあります:
uses-permission android:name="android.permission.RECORD_AUDIO"
おそらく、私は Samsung Galaxy Tab p1000 を使用していて、Android 2.2 で実行されているためでしょうか? 何か案が?
どうもありがとう