我即将加载在线内容(例如音频文件)。如果我只是打开到远程文件的连接(例如通过使用new URL().openStream()
)并将远程传递给音频播放器,它会逐渐从网络中InputStream
读取。如果音频播放器库不要求更多数据,它不会从网络读取任何内容,然后当库要求更多数据时,它会再次读取。InputStream
我的问题是我想在第一个加载过程完成后立即开始缓存下一个在线音频文件。使用 normal InputStream
,在音频播放完成时读取完成,这不好,因为如果网络带宽允许,我希望它读取得更快,以便缓存下一个音频文件。我的音频文件小于 3mb,因此可以安全地缓存到内存中。我只预取一个文件,所以内存泄漏没有问题。
是否有任何类型的缓存InputStream
,它也允许并发读取?然后我可以运行一个线程并比音频播放器消耗数据更快地缓存音频。