检查用户手机上是否有足够的可用空间来录制视频

时间:2017-07-21 09:15:20

标签: ios swift xcode memory

在我的摄像机应用程序中,我想检查用户手机上是否有足够的存储空间来录制视频,然后再允许他们录制。就像youtube一样。

This is what happens when you do it on YouTube

enter image description here

我怎么能

1)在录制视频之前,检查用户手机上是否有足够的可用空间。

2)如果用户的手机上没有足够的可用空间,请向用户显示警告。

谢谢

1 个答案:

答案 0 :(得分:0)

我需要类似的功能,因此我创建了返回空闲MB数量的函数。我测试了当空间已满时会发生什么,并发现iOS大约在120MB后开始显示有关剩余空间的通知,并且当相机停止工作时。但是我的应用程序可以保存其他文件,直到达到大约30MB的可用空间为止。 因此可以肯定的是,建议您在从此函数中获取价值时,检查它是否至少为200(MB),然后允许用户进行保存。 我在iPhone X和6s上的Xcode 11.0中测试了这两个功能(针对Swift 5.0和Objective C),并且效果很好。

在Swift 5.0中,还可以与较低的Swift版本一起使用(根据版本的不同会有细微的变化)

db_conn.execute(f"""select count (*) from table""")
output = db_conn.fetchone()[0]

在目标C中:

func getFreeSpace() -> CLongLong // return free space in MB
    {
        var totalFreeSpaceInBytes: CLongLong = 0; //total free space in bytes

        do{
            let spaceFree: CLongLong = try FileManager.default.attributesOfFileSystem(forPath: NSHomeDirectory())[FileAttributeKey.systemFreeSize] as! CLongLong;
            totalFreeSpaceInBytes = spaceFree;

        }catch let error{ // Catch error that may be thrown by FileManager
            print("Error is ", error);
        }

        let totalBytes: CLongLong = 1 * CLongLong(totalFreeSpaceInBytes);
        let totalMb: CLongLong = totalBytes / (1024 * 1024);

        return totalMb;
    }