Android中的音频处理给出了延迟

时间:2017-07-20 18:55:50

标签: java android audio mediacodec

我正在尝试实现一种能够改变即时播放音乐的算法。我正在使用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;
            }

0 个答案:

没有答案