【问题标题】:Why am I getting IllegalArgumentException: Unsupported channel configuration?为什么我会收到 IllegalArgumentException:不支持的频道配置?
【发布时间】:2014-07-07 21:39:54
【问题描述】:

我正在使用 AudioRecord 从 Android 上的耳机插孔收集音频数据,如下所示:

int frequency = 44100;
int channelConfiguration = AudioFormat.CHANNEL_OUT_MONO;
int audioEncoding = AudioFormat.ENCODING_PCM_16BIT;

int bufferSize = AudioRecord.getMinBufferSize(frequency, channelConfiguration, audioEncoding);
AudioRecord audioRecord = new AudioRecord(MediaRecorder.AudioSource.MIC, frequency, channelConfiguration, audioEncoding, bufferSize);
audioRecord.startRecording();

但是,我收到一个错误提示

java.lang.IllegalArgumentException: Unsupported channel configuration.

我没有在网上找到任何有用的东西,所以我想知道是否其他人也有这个问题。

【问题讨论】:

  • 因为它不支持频率、频道配置和编码的组合。我看到帖子说模拟器只支持 8K Hz。你用的是真硬件吗?
  • 也可能是您尝试使用AudioFormat.CHANNEL_OUT_MONO 从输出中记录。
  • @GabeSechan 你好,我用的是 smasung Galaxy 2,所以 44100 应该没问题。
  • @CaseyB 我应该尝试使用 AudioFormat.CHANNEL_OUT_STEREO 吗?

标签: java android audio audiorecord


【解决方案1】:

我不知道这是否是 CaseyB 的意思,但我将 AudioFormat.CHANNEL_OUT_MONO 更改为 AudioFormat.CHANNEL_IN_MONO。这使错误消失了。

【讨论】:

  • 是的,我就是这个意思。
  • 对我来说,它实际上产生了与 CHANNEL_IN_MONO 相同的错误,并且与 CHANNEL_IN_STEREO 一起工作正常
【解决方案2】:

当您使用录音时,AudioFormat.CHANNEL_IN_MONO。 使用播放时,AudioFormat.CHANNEL_OUT_MONO。

【讨论】:

  • 您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center
猜你喜欢
  • 2021-01-21
  • 1970-01-01
  • 2013-09-08
  • 1970-01-01
  • 2019-11-23
  • 1970-01-01
  • 2021-08-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多