我正在开发音频混合应用程序。目前,我的录音和播放功能非常适合一首歌。但是,我希望能够同时播放多首曲目。
这是我用来播放.pcm文件中的音频的代码
class PlayThread extends Thread {
public void run() {
try {
System.out.println("~~Playing audio");
byte[] buffer = new byte[playBufSize];
BufferedInputStream bis = new BufferedInputStream(new FileInputStream(pcmFile), playBufSize);
audioTrack.play();
int readSize = -1;
while (isPlaying && (readSize = bis.read(buffer)) != -1) {
audioTrack.write(buffer, 0, readSize);
}
audioTrack.stop();
MainActivity main = (MainActivity) ctx;
main.audioStopped();
bis.close();
} catch (Throwable t) {
t.printStackTrace();
}
}
}
我通过以下功能运行此代码:
public void startPlaying()
{
isPlaying = true;
new PlayThread().start();
}
pcmFile是音频文件的完整路径。但是,我可以记录其中的4个(channel0.pcm,channel1.pcm,channel2.pcm和channel3.pcm)。 现在,当我按播放时,它只播放一个。如何调整此代码以完全同时播放多个文件?
奖金,如果您能告诉我如何循环播放此内容,那也会有很大帮助。我想让这些文件连续循环直到线程停止。