android - 媒体记录器 setMaxFileSize 问题

标签 android video record

我在录制视频时尝试设置最大文件大小时遇到​​问题。 recorder.setMaxFileSize(long filesize_in_bytes) 的文档说明了参数的长变量类型。我有一个方法可以返回长值的可用空间。当我尝试将这个长变量设置为参数时,它每次都会失败。

自由空间法

public long freeSpace(){
StatFs stat = new StatFs(Environment.getExternalStorageDirectory().getPath());
long free = (long)stat.getBlockSize() *(long)stat.getBlockCount();
Log.w("FREESPACE METHOD", "Free space on SD card: "+free);
return free;
}

媒体记录器方法摘录

long spaceFree = freeSpace();
recorder.setblahblah
recorder.setMaxFileSize(spaceFree);  //Fails right here.

日志

05-31 00:30:28.201: ERROR/AndroidRuntime(17697): Caused by: java.lang.RuntimeException: setMaxFileSize failed.

但是,如果这样做 recorder.setMaxFileSize(5000000L); 它会起作用。

我错过了什么明显的东西?

最佳答案

使用 getAvailableBlocks() 而不是 getBlockCount()。看起来您获得的是 SD 卡的总大小,而不是可用空间。

关于android - 媒体记录器 setMaxFileSize 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6183393/

相关文章:

java - 如何修复 java.lang.NoClassDefFoundError 崩溃

android - 在 Parceler 中使用 Android 注解

scala - 在 Shapeless 记录上映射

java - 在 java 中录制流式音频?

java - 如何处理Android应用程序的更多用户(拥有自己的帐户)?多线程?

java - 在 Android App 中编译 Latex 文档

ios - 使用 AV 播放器访问单个帧

video - 选择性 "Unkown encoder libfdk_aac"消息

c# - 上传任何视频并在 .net 中在线转换为 .mp4

c - 输入的多条记录不起作用