我打開一個連接,以便在寫入一些字節後將一個流下載到SD卡上的文件我開始MediaPlayer播放文件 我的問題是MediaPlayer讀取的只是Duratio計算的相位 準備MediaPlayer沒有更新文件持續時間
0
A
回答
0
這是正確的行爲。當您使用MediaPlayer播放本地文件時,MediaPlayer初始化時將掃描一次文件,並且不會開始進一步的掃描。 MediaPlayer不知道您會將更多數據附加到該文件。一種解決方案是使用MediaPlayer直接通過網絡傳輸文件。
+0
感謝您的回答 我將流下載到文件以便記錄它的某些部分。 有沒有辦法讓MediaPlayer更新文件的新的持續時間? Iphone播放器每秒更新持續時間 – hox 2011-06-17 13:49:48
0
我已經解決了這個問題,暫時在一個新的媒體播放器中打開相同的文件,獲得持續時間並再次發佈。爲了節省系統資源,只能定期進行,例如每隔5秒進行一次,並且只有在文件實際發生了變化時。
public boolean fileSizeHasChanged() {
long currentFileSize = new File(mCurrentMediaFile).length();
if (currentFileSize == mLastFileSize)
return false;
mLastFileSize = currentFileSize;
return true;
}
public int getDuration() {
long currentDurationCheck = System.currentTimeMillis();
if (currentDurationCheck - mLastDurationCheck < 5000)
return mDuration;
mLastDurationCheck = currentDurationCheck;
if (!fileSizeHasChanged())
return mDuration;
// mp is the main media player actual playing, mp2 is the auxillary one
MediaPlayer mp2 = new MediaPlayer();
try {
mp2.setDataSource(mCurrentMediaFile);
mp2.prepare();
mDuration = mp2.getDuration();
mp2.release();
} catch (Exception e) {
e.printStackTrace();
}
return mDuration;
}
相關問題
- 1. MPMoviePlayerController持續時間沒有更新
- 2. 更新moment.js持續時間
- 3. 更新每5秒CSS文本動畫時間持續時間
- 4. 更新帶有離子觸摸事件的moment.js持續時間
- 5. 如何在沒有mediaPlayer的情況下查看視頻的持續時間?
- 6. 讀取具有時間間隔/持續時間的.TDMS文件
- 7. UIPageViewController更改持續時間
- 8. 有沒有辦法從Firebase獲取服務器時間的持續更新?
- 9. php臨時文件持續時間
- 10. Android MediaPlayer - 如何從流文件獲得正確的持續時間
- 11. SQL事件探查器持續時間與SSMS持續時間
- 12. InfluxDB:如何更新現有數據庫的持續時間
- 13. 如何時間可持續更新C#中的文本框
- 14. 有條件地持續一段時間
- 15. Red5錄製文件持續時間
- 16. 計算TS文件持續時間
- 17. 從.wav文件獲取持續時間
- 18. 檢測MOV文件的持續時間
- 19. AMR音頻文件的持續時間
- 20. 增加持續時間爲Makefile文件
- 21. 獲取mxf文件的持續時間
- 22. 通過插件更新持續時間字段
- 23. 持續時間
- 24. 如何正確顯示MediaPlayer的位置/持續時間?
- 25. 使用MediaPlayer獲取原始資源的持續時間長度
- 26. Android MediaPlayer錯誤的軌道持續時間
- 27. 如何在Xamarin中使用MediaPlayer的軌道持續時間
- 28. 有沒有辦法使用ColdFusion獲取視頻文件的持續時間?
- 29. 時間片持續時間
- 30. Scrollmagic持續時間
你可以添加一些代碼來告訴我們它是如何工作的嗎?有時MediaPlayer是一個棘手的野獸,看到實際的代碼通常是有幫助的。謝謝! – Matt 2011-06-17 13:37:37