AudioManager的PROPERTY_OUTPUT_SAMPLE_RATE或PROPERTY_OUTPUT_FRAMES_PER_BUFFER属性不能在不同的输出设备之间更改,它们是固定的。 如果需要知道不同输出设备的采样率和帧数,可以使用AudioTrack的相应方法获取实际的采样率和帧数。
示例代码如下:
AudioManager audioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
int sampleRate = AudioTrack.getNativeOutputSampleRate(AudioManager.STREAM_MUSIC);
int framesPerBuffer = AudioTrack.getMinBufferSize(sampleRate, AudioFormat.CHANNEL_OUT_STEREO, AudioFormat.ENCODING_PCM_16BIT);
上述代码可以获得当前设备上流媒体音频的采样率和每帧的样本数。