如何使用onSynthesizeDataArrived来进行缓存并实现后期播放?
Ta的回复 : private void playAudioTrack() throws IOException { int frequence = 16000; int channelConfig = AudioFormat.CHANNEL_OUT_MONO; int audioEncoding = AudioFormat.ENCODING_PCM_16BIT; int streamType = AudioManager.STREAM_MUSIC; int bufferSize = AudioTrack.getMinBufferSize(frequence, channelConfig, audioEncoding); byte[] buffer = new byte[bufferSize / 4]; File file = new File(audioPath, "0.pcm"); FileInputStream is = new FileInputStream(file); DataInputStream dis = new DataInputStream(new BufferedInputStream(is)); AudioTrack track = new AudioTrack(streamType, frequence, channelConfig, audioEncoding, bufferSize, AudioTrack.MODE_STREAM); track.setPlaybackRate(frequence); /* start play */ track.setStereoVolume(1.0f, 1.0f); track.play(); while (dis.available() > 0) { int i = 0; while (dis.available() > 0 && i < buffer.length) { buffer[i] = dis.readByte(); i++; } /*write data to AudioTrack*/ track.write(buffer, 0, buffer.length); } /*stop play*/ track.stop(); dis.close(); }