JLayer同步
(我试图使我之前的问题更加通用,希望能找到解决方案。)
我正在使用JLayer库和sample.mp3文件。我想同时播放和解码文件。
但是,我想让它们同步 - 如果歌曲的一部分被解码,它也会被播放。在播放之前没有任何内容被解码,反之亦然(当然,在合理的程度上)。
以下是尊重地播放和解码歌曲的方式:
Player p = new Player(InputStream mp3stream);
p.play();
Decoder d = new Decoder();
BitStream bs = new Bitstream(InputStream mp3stream);
SampleBuffer s = (SampleBuffer) d.decodeFrame(bs.readFrame(), bs);
// ... for processing the SampleBuffer but irrelevant for the question
我目前使用:
InputStream mp3stream = new FileInputStream("sample.mp3");
但这一次使用了整首歌,所以我无法同步。有没有办法将sample.mp3分解为可由两个进程操作的片段?如果我有足够小的碎片,我可以将两个碎片都放进过程中,等到两个碎片完成,然后抓住下一个小碎片重复,直到我的碎片变小。
注意:我尝试使用ByteArrayInputStream但没有成功 - 但使用它时我的方法可能不正确。
没有找到相关结果
已邀请:
1 个回复
糕泰灌