方案: 在我的.apk文件中加密了mp3文件。需要解密併發送到MediaPlayer對象。將數據從內存中提供給MediaPlayer
問題: 當我讀取文件並解密它們後,如何讓MediaPlayer播放它們?
現在。 MediaPlayer有4個版本的setDataSource()。
setDataSource(String path)
setDataSource(FileDescriptor fd)
setDataSource(FileDescriptor fd, long offset, long length)
setDataSource(Context context, Uri uri)
這些都不適合這種情況。猜想理想的是給MediaPlayer一個InputStream嗎?
可能的解決方案:
- 寫解密的數據文件播放 該文件。很多IO開銷。
- 創建一個虛擬http服務器 (ServerSocket?)並將該URL傳遞給 MediaPlayer。再次,凌亂。我甚至允許創建一個套接字。
有沒有人有更好的解決方案?
我確實考慮過AudioTrack,並忘記在我的文章中提及它:)但它比MediaPlayer低得多。就像它說「它允許PCM音頻緩衝區流到音頻硬件播放」。我不得不自己解碼MP3。 – olafure 2010-11-26 08:20:39