AudioRecord不适用于摩托罗拉Milestone

时间:2010-05-04 12:26:10

标签: android android-audiorecord

4 个答案:

答案 0 :(得分:1)

这应该有效:

recordInstance = new AudioRecord(MediaRecorder.AudioSource.MIC,
16000, AudioFormat.CHANNEL_IN_MONO, AudioFormat.ENCODING_PCM_16BIT, 16000);

坚持标准采样率http://en.wikipedia.org/wiki/Sampling_rate#Audio。我想知道为什么Milestone不支持使用8位编码进行录制。这也给我一个错误 - “音频格式无效”。

答案 1 :(得分:0)

首先,正如调试消息所说的那样,尝试在停止时设置try catch块,录制进入IllegalState。

如果你能抓住异常,你可以找出问题所在。

答案 2 :(得分:0)

问题不是参数,问题是摩托罗拉修补Android的错误,如果模式是IN_CALL,AudioRecord将无法正确创建,如果它的MODE_NORMAL应该没问题。

这是因为在其IN_CALL模式下,Motorolas代码中的某些内容会占用输入。

答案 3 :(得分:0)

理论上,hcpl的代码应该可以工作,因为语音采样为8kHz,但是某些android设备不接受。

从Android开发者网站上填写疯狂的答案:

  

sampleRateInHz int:采样率,以赫兹表示。 44100Hz是   目前是唯一可以在所有设备上使用的速率,但是   其他费率(例如22050、16000和11025)可能在某些设备上运行。   AudioFormat.SAMPLE_RATE_UNSPECIFIED表示使用与路由相关的   值,通常是源的采样率。 getSampleRate()   可以用来检索所选的实际采样率。