2

Android - setMaxFileSize 相对于 Android 的 mediarecorder 可以设置的最大文件大小是多少?我知道它介于 4147483650 和 5147483650 之间。为什么首先有限制?

我正在录制到 SDCARD,在我们运行之前检测卡空间的大小。

“ERROR/AuthorDriver(31): setParameter(max-filesize = 7270309850) 结果-5” “ERROR/AuthorDriver(31): Ln 903 handleSetParameters(“max-filesize=7270309850”) 错误” “ERROR/AndroidRuntime(409 ): java.lang.RuntimeException: setMaxFileSize 失败。”

4

4 回答 4

2

为什么首先有限制?

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

于 2010-05-08T09:50:15.230 回答
1

如果您查看 AuthorDriver.cpp,您会看到它执行检查以查看您传入的时间值是否适合 16 位 int。有一条评论显示“PV API 期望这适合 uint16”。所以,是的,目前似乎没有办法解决这个问题。

于 2011-03-22T15:15:23.103 回答
1

我在 GS5、Hauwei Y550、Note 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

于 2015-03-09T11:34:09.827 回答
0

我也在做一个安卓录音机。

使用 StatFs 并将外部存储目录的路径传递给构造函数,您可以在 StatFs 对象上调用 getAvailableBlocks() 和 getBlockSize() 等函数。

这样您就知道 SD 卡上还有多少可用空间。

于 2010-07-11T12:53:18.100 回答