我正在尝试实现一种能够改变即时播放音乐的算法。我正在使用OpenMXPlayer来实现我的音乐播放器。我可以访问该字节并且也可以编辑它,但是当我在设备上播放它时,它会给我一个延迟。我知道滞后是因为我的算法修改byte []所花费的时间。我需要一种方法来消除滞后。下面是我正在实现的代码片段。我将不胜感激任何帮助。谢谢!
int res = codec.dequeueOutputBuffer(info, kTimeOutUs);
if (res >= 0) {
if (info.size > 0) noOutputCounter = 0;
int outputBufIndex = res;
ByteBuffer buf = codecOutputBuffers[outputBufIndex];
final byte[] chunk = new byte[info.size];
buf.get(chunk);
//EDIT THE CHUNK AND WRITE IT IN THE AUDIOTRACK.
buf.clear();
if(chunk.length > 0){
audioTrack.write(chunk,0,chunk.length);
}
codec.releaseOutputBuffer(outputBufIndex, false);
if ((info.flags & MediaCodec.BUFFER_FLAG_END_OF_STREAM) != 0) {
Log.d(LOG_TAG, "saw output EOS.");
sawOutputEOS = true;
}