J'essaie de décoder un flux de données audio MP3 avec Android Media Codec. Avec un taux d'échantillonnage de 44100, le décodage fonctionne correctement, mais la latence est trop importante. J'ai donc réglé le taux d'échantillonnage à 16000, mais maintenant le décodeur ne fonctionne plus. Je reçois une exception d'état illégal à dequeueOutputBuffer.Media Codec dequeueOutputBuffer IllegalStateException
Ceci est la partie du code où le problème pourrait être: J'ai aussi essayé
bufferInfo = new MediaCodec.BufferInfo();
outputBufferIndex = decoder.dequeueOutputBuffer(bufferInfo, -1);
while (outputBufferIndex >= 0) {
outputBuffer = decoder.getOutputBuffer(outputBufferIndex);
outputBuffer.position(bufferInfo.offset);
outputBuffer.limit(bufferInfo.offset + bufferInfo.size);
outData = new byte[bufferInfo.size];
outputBuffer.get(outData);
track.write(outData, 0, outData.length);
decoder.releaseOutputBuffer(outputBufferIndex, false);
outputBufferIndex = decoder.dequeueOutputBuffer(bufferInfo, -1);
}
pour définir le délai d'attente de dequeueOutputBuffer à 0, mais cela ne change rien.
C'est l'erreur que je reçois:
E/SoftMP3: mp3 decoder returned error 1
E/ACodec: [OMX.google.mp3.decoder] ERROR(0x80001001)
E/ACodec: signalError(omxError 0x80001001, internalError -2147483648)
E/MediaCodec: Codec reported err 0x80001001, actionCode 0, while in state 6
E/AndroidRuntime: FATAL EXCEPTION: Thread-79054
Process: com.example.jonas.audio_client, PID: 26394
java.lang.IllegalStateException
at android.media.MediaCodec.native_dequeueOutputBuffer(Native Method)
at android.media.MediaCodec.dequeueOutputBuffer(MediaCodec.java:1107)
Si j'imprimer le format audio que l'extracteur obtient, je vois que l'échantillon-Rate est réglé sur 16000.
D/Format:: {bitrate=32000, mime=audio/mpeg, durationUs=6509000, channel-count=1, sample-rate=16000, bit-rate=32000}
Merci pour de l'aide!
J'ai essayé de changer 'int bitrate = 450000;' à 'int bitrate = 32 * resultHeight * resultWidth * 25/100;' mais cela ne fonctionnait toujours pas du tout. Je reçois la même erreur [this] (https://github.com/Tourenathan-G5organisation/SiliCompressor/issues/16). – NarendraJi