2010-05-08 47 views
2

Android - 相對於Androids mediarecorder,setMaxFileSize可以設置的最大文件大小是多少?我知道它介於4147483650和5147483650之間。爲什麼首先有一個限制?Android - 什麼是媒體記錄器的最大maxfilesize?

我正在錄製SDCARD,在我們運行之前檢測卡片空間的大小。

「ERROR/AuthorDriver(31):的setParameter(最大值 - 文件大小= 7270309850)失敗,結果-5」 「ERROR/AuthorDriver(31):LN 903 handleSetParameters(」 MAX-文件大小= 7270309850 「)錯誤」 「錯誤/ AndroidRuntime(409):java.lang.RuntimeException:setMaxFileSize失敗。」

回答

2

爲什麼在第一個 的地方有限制?

SD卡使用msdos(FAT16)文件系統,它具有文件大小限制。這不是Android的限制,而是一般SD卡的限制。

+1

感謝您的回覆。很高興知道MS的遺產仍然存在...... arrrgh! – 2010-05-30 13:31:20

0

我正在開發android錄音機。

使用StatFs並將外部存儲目錄的路徑傳遞給構造函數,並且可以調用StatFs對象上的getAvailableBlocks()和getBlockSize()等函數。

這樣就可以知道SD卡上有多少空間可用。

+0

啊,是的,那是我用過的。這部分工作,只是當我通過4Gb創建文件時,我遇到了上述問題。例如,如果您錄製到2Gb SD卡,則永遠不會看到上述限制。您可以創建2個4Gb文件並播放一個又一個,之間有一個微小的差距。 – 2010-07-13 18:30:35

1

如果你看看AuthorDriver.cpp,你會發現它會檢查你傳入的時間值是否適合16位int。有一條評論寫道:「PV API預計這將適合uint16」。所以,是的,目前似乎沒有辦法解決這個問題。

1

我試過GS5,Hauwei Y550,注3,它們都不能記錄超過4096 MB的文件(即使有官方的相機應用程序)。這將1080p視頻限制爲35分鐘,4K視頻限制在20分鐘以內。原因是由Shane-Kirk提供的(除了它是32位)。

我已經在Android源代碼上打開了所有細節的增強問題,如果您有興趣,請考慮主演它,我們越有可能他們會爲AuthorDriver.cpp製作補丁。

https://code.google.com/p/android/issues/detail?id=145618&q=mediarecorder&colspec=ID%20Type%20Status%20Owner%20Summary%20Stars