[英]Playing a changing file using android media player
反正有使用Android Media Player播放動態添加到的文件嗎?
我嘗試使用RandomAccessFile:
public static RandomAccessFile tempMp3;
tempMp3 = new RandomAccessFile(Environment.getExternalStorageDirectory()+"/ggg", "rw");
StaticData.tempMp3.setLength(file_size);
StaticData.tempMp3.seek(0);
//這里我調用自動更新功能,在寫入X字節后,我調用playMediaPlayer
StaticData.mediaPlayer.setDataSource(StaticData.tempMp3.getFD());
StaticData.mediaPlayer.prepare();
StaticData.mediaPlayer.start();
所以基本上我是在同時更新和播放。 問題在於MediaPlayer和我的Update函數都正在訪問和移動文件指針,這弄亂了MediaPlayer。
有什么解決方法嗎? 我可以使用單獨的文件指針嗎?
解決了這個。
Java NIO可以解救。 使用內存映射的IO,我們可以在不干擾文件指針的情況下寫入文件,因此android媒體播放器很高興。 這是一個有用的鏈接 。 訣竅是設置MappedByteBuffer的大小=音樂文件的大小。 如果還沒有寫入緩沖區,我們還需要確保媒體播放器暫停。 這可以通過監視文件指針來實現。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.