android - 如何确定 Android 上的音频功能?

标签 android audio

我正在试验 Android 的音频录制和播放。有没有办法在我的设备上枚举可用的音频参数?

现在,当我传递硬件(或模拟器)不喜欢的参数组合时,我只会收到错误消息。所以我不得不“猜测”:

int bufferSize; 
int sampleRate;

// does the audio hardware do 44 kHz? 
sampleRate = 44100;
bufferSize = AudioRecord.getMinBufferSize(sampleRate, 
    AudioFormat.CHANNEL_CONFIGURATION_MONO,
    AudioFormat.ENCODING_PCM_16BIT);

if (bufferSize != AudioTrack.ERROR_BAD_VALUE) {
    // Nope, how about 22 kHz? 
    sampleRate = 22050;
}

bufferSize = AudioRecord.getMinBufferSize(sampleRate, 
    AudioFormat.CHANNEL_CONFIGURATION_MONO,
    AudioFormat.ENCODING_PCM_16BIT);

if (bufferSize != AudioTrack.ERROR_BAD_VALUE) { 
    ...

肯定有更好的方法!


This chart表示支持的音频输入采样率为 8 kHz?那是对的吗?

最佳答案

关于android - 如何确定 Android 上的音频功能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2420726/

相关文章:

javascript - 从麦克风获取音频数据作为数组

audio - 快速连续播放片段时单击声音

javascript - 如何使用空格键自动播放音乐并停止/继续播放?

c# - 播放SpeechSynthesizer时如何播放IMFMediaEngine背景音频

android - 如何使背景图 block 居中?

android - 改造错误: Expected BEGIN_OBJECT but was BEGIN_ARRAY

android - 我可以在 Android 的底部放置一个操作栏吗?

java - android - 为什么 MediaPlayer 延迟播放 mp3 音频?

c# - Android 语音识别将数据传回 Xamarin Forms

android - 带有菜单键的设备上的操作溢出,例如在新的 Google+ 应用程序中