我正在尝试使用android api中的AudioRecord类开发一个音频捕获应用程序,设置,音频源如何MediaRecorder.AudioSource.MIC,应用程序如何工作,但是当我尝试使用回声消除,设置MediaRecorder.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清单中,我有:
使用-权限android:name="android.permission.RECORD_AUDIO“
也许是因为我使用的是三星的galaxy tab p1000,而它运行的是Android2.2?有什么想法吗?
非常感谢
发布于 2011-06-01 17:30:44
是的没错。问题是你使用的是Android2.2。新的VOICE_COMMUNICATION是在Android3.0中引入的。当在旧版本上运行时,您将获得默认的源代码。
发布于 2011-08-20 00:49:09
我终于能够在我的Arm5 (WM8650)处理器上使用回声消除功能。下面是我采取的步骤。
的质量较低
我希望这能对某些人有所帮助。
https://stackoverflow.com/questions/6096316
复制相似问题