Ich versuche, einen MP3-Audio-Datenstrom mit Android Media Codec zu dekodieren. Mit einer Abtastrate von 44100 funktioniert die Decodierung gut, aber die Latenz ist zu groß. Also habe ich die Abtastrate auf 16000 gesetzt, aber jetzt funktioniert der Decoder nicht mehr. Ich erhalte eine ungültige Ausnahme bei dequeueOutputBuffer. Media Codec dequeueOutputBuffer IllegalStateException
Dies ist der Teil des Codes, wo das Problem sein könnte:
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);
}
ich auch das Timeout von dequeueOutputBuffer auf 0 zu setzen versucht, aber das ändert nichts.
Dies ist der Fehler, den ich erhalte:
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)
Wenn ich das Audio-Format drucken, der Extractor wird, sehe ich, dass die Sample-Rate zu 16000.
D/Format:: {bitrate=32000, mime=audio/mpeg, durationUs=6509000, channel-count=1, sample-rate=16000, bit-rate=32000}
Dank eingestellt ist für irgendeine Hilfe!
Ich habe versucht, 'int bitrate = 450000;' zu 'int bitrate = 32 * resultHeight * resultWidth * 25/100;' zu ändern, aber es hat immer noch nicht funktioniert. Ich bekomme [diese] (https://github.com/Tourenathan-G5organisation/SiliCompressor/issues/16) gleichen Fehler. – NarendraJi