Я использую AudioTrack
для воспроизведения аудиофайла .wav. Все в порядке, но на данный момент я жестко запрограммировал разрядность аудиофайла при инициализации объекта AudioTrack
в STATIC_MODE
.
mAudioTrack = new AudioTrack(AudioManager.STREAM_MUSIC, mSampleRate, mChannels,
AudioFormat.ENCODING_PCM_16BIT, dataSize, AudioTrack.MODE_STATIC);
Я хочу программно получить битовую глубину/битрейт файла .wav, а затем установить кодировку в объекте AudioTrack
. Я пытался использовать MediaExtractor
и MediaFormat
, но это дает мне только следующую информацию:
mediaFormat:{mime=audio/raw, durationUs=10080000, channel-count=1, channel-mask=0, sample-rate=16000}
В документации MediaFormat
сказано, что KEY_BIT_RATE
предназначен только для кодировщика. Означает ли это, что я могу использовать эту опцию только при кодировании необработанных битов PCM. Если да, то какой еще может быть способ программно прочитать битрейт/битность? Я уже пытался получить информацию для того же файла на терминале, используя двоичный файл mediainfo
, и он дает мне правильную разрядность.