2010-12-20 29 views
1

我正在開發一個需要使用聲音文件的應用程序(目前通過JLayer音頻庫),並且想知道是否可以在內存中緩存一個文件,以便它不必讀取每次需要時都需要硬盤。我應該如何緩存Java中的音頻文件(使用JLayer)?

例如,我可以將圖像存儲在BufferedImage對象中,而不是每次需要圖像時調用ImageIO.read;有沒有類似的方式來解決這個使用JLayer?我應該使用不同的音頻庫嗎?我不想每次用戶觸發聲音時敲擊磁盤(可能每秒多次)。如果它有所不同,音頻是MP3格式

回答

2

您可以將任何文件(最大到特定大小)讀取到一個字節[]中並從那裏處理。對於InputStreams(消費者不需要知道數據來自何處)的Java抽象應該使得這非常簡單(假設你的音頻庫沒有硬編碼以從文件中讀取),Java的抽象化應該是非常簡單的。

首先查找ByteArrayOutputStreamByteArrayInputStream

+0

好的,謝謝!我會試一試。 – Alex 2010-12-20 06:11:27

相關問題