MediaCodec e PCM de 24 bits
Estou usando com sucesso o MediaCodec para decodificar o áudio, no entanto, quando carrego um arquivo com amostras de 24 bits, não tenho como saber que isso ocorreu. Como o aplicativo estava assumindo amostras de 16 bits, ele falhou.
Quando imprimo o MediaFormat, vejo
{mime=audio/raw, durationUs=239000000, bits-format=6, channel-count=2, channel-mask=0, sample-rate=96000}
Suponho que o "formato de bits" seja uma dica, no entanto, essa chave não é declarada na API e não é realmente emitida quando o formato de saída é alterado. eu recebo
{mime=audio/raw, what=1869968451, channel-count=2, channel-mask=0, sample-rate=96000}
(A propósito, qual é a chave "what"? Percebo que, se interpretar como um 4charcode, é "outC
"... apenas uma bandeira de que é um formato de saída?)
Então, qual é o melhor recurso aqui? Se eu alimentar oByteBuffer
direto para oAudioTrack
é claro estático (assumindo PCM 16).
Se eu souber o valor, eu mesmo posso convertê-lo! Entendo por outras perguntas que você também não pode ditar o formato de saída.