Android 持续检查外部存储器以停止录像

Android 持续检查外部存储器以停止录像,android,local-storage,android-sdcard,mediarecorder,Android,Local Storage,Android Sdcard,Mediarecorder,我正在开发一个摄像机应用程序,它将录制视频,但我想在用户内存不足时停止视频录制,因为我必须不断检查视频和sd卡的大小 这种情况是,当我正在录制文件时,文件大小将不断变化,因此如何停止录制活动内部的视频以及如何持续检查SD卡大小 用于检查sd卡大小的代码为 StatFs statFs = new StatFs(Environment.getExternalStorageDirectory().getAbsolutePath()); long blockSiz

我正在开发一个摄像机应用程序,它将录制视频,但我想在用户内存不足时停止视频录制,因为我必须不断检查视频和sd卡的大小

这种情况是,当我正在录制文件时,文件大小将不断变化,因此如何停止录制活动内部的视频以及如何持续检查SD卡大小

用于检查sd卡大小的代码为

StatFs statFs = new StatFs(Environment.getExternalStorageDirectory().getAbsolutePath());        
            long blockSize = statFs.getBlockSize();
            long totalSize = statFs.getBlockCount()*blockSize;
            long availableSize = statFs.getAvailableBlocks()*blockSize;
            long freeSize = statFs.getFreeBlocks()*blockSize;

            long megAvailablenew = availableSize/ (1024 * 1024);
            Log.e("","Available MB : "+megAvailablenew+" avail "+availableSize)
请参阅—

public long TotalMemory()//Environment.getExternalStorageDirectory().getAbsolutePath()
    {
        StatFs statFs = new StatFs(Environment.getRootDirectory().getAbsolutePath());   
        long Total = ( (long) statFs.getBlockCount() *  (long) statFs.getBlockSize()) / 1048576;
        return Total;
    }

public long FreeMemory()
{
    StatFs statFs = new StatFs(Environment.getRootDirectory().getAbsolutePath());
    long Free  = (statFs.getAvailableBlocks() *  (long) statFs.getBlockSize()) / 1048576;
    return Free;
}

public long BusyMemory()
{
    StatFs statFs = new StatFs(Environment.getRootDirectory().getAbsolutePath());   
    long Total = ( (long) statFs.getBlockCount() * (long) statFs.getBlockSize()) / 1048576;
    long Free  = (statFs.getAvailableBlocks() *  (long) statFs.getBlockSize()) / 1048576;
    long Busy  = Total - Free;
    return Busy;
}
请参阅—

public long TotalMemory()//Environment.getExternalStorageDirectory().getAbsolutePath()
    {
        StatFs statFs = new StatFs(Environment.getRootDirectory().getAbsolutePath());   
        long Total = ( (long) statFs.getBlockCount() *  (long) statFs.getBlockSize()) / 1048576;
        return Total;
    }

public long FreeMemory()
{
    StatFs statFs = new StatFs(Environment.getRootDirectory().getAbsolutePath());
    long Free  = (statFs.getAvailableBlocks() *  (long) statFs.getBlockSize()) / 1048576;
    return Free;
}

public long BusyMemory()
{
    StatFs statFs = new StatFs(Environment.getRootDirectory().getAbsolutePath());   
    long Total = ( (long) statFs.getBlockCount() * (long) statFs.getBlockSize()) / 1048576;
    long Free  = (statFs.getAvailableBlocks() *  (long) statFs.getBlockSize()) / 1048576;
    long Busy  = Total - Free;
    return Busy;
}
请参阅—

public long TotalMemory()//Environment.getExternalStorageDirectory().getAbsolutePath()
    {
        StatFs statFs = new StatFs(Environment.getRootDirectory().getAbsolutePath());   
        long Total = ( (long) statFs.getBlockCount() *  (long) statFs.getBlockSize()) / 1048576;
        return Total;
    }

public long FreeMemory()
{
    StatFs statFs = new StatFs(Environment.getRootDirectory().getAbsolutePath());
    long Free  = (statFs.getAvailableBlocks() *  (long) statFs.getBlockSize()) / 1048576;
    return Free;
}

public long BusyMemory()
{
    StatFs statFs = new StatFs(Environment.getRootDirectory().getAbsolutePath());   
    long Total = ( (long) statFs.getBlockCount() * (long) statFs.getBlockSize()) / 1048576;
    long Free  = (statFs.getAvailableBlocks() *  (long) statFs.getBlockSize()) / 1048576;
    long Busy  = Total - Free;
    return Busy;
}
请参阅—

public long TotalMemory()//Environment.getExternalStorageDirectory().getAbsolutePath()
    {
        StatFs statFs = new StatFs(Environment.getRootDirectory().getAbsolutePath());   
        long Total = ( (long) statFs.getBlockCount() *  (long) statFs.getBlockSize()) / 1048576;
        return Total;
    }

public long FreeMemory()
{
    StatFs statFs = new StatFs(Environment.getRootDirectory().getAbsolutePath());
    long Free  = (statFs.getAvailableBlocks() *  (long) statFs.getBlockSize()) / 1048576;
    return Free;
}

public long BusyMemory()
{
    StatFs statFs = new StatFs(Environment.getRootDirectory().getAbsolutePath());   
    long Total = ( (long) statFs.getBlockCount() * (long) statFs.getBlockSize()) / 1048576;
    long Free  = (statFs.getAvailableBlocks() *  (long) statFs.getBlockSize()) / 1048576;
    long Busy  = Total - Free;
    return Busy;
}


您可以在录制时设置广播检查接收器中的状态请检查我的问题,当达到内存限制时,我要求停止录制。广播是什么来检查内存状态的,或者您也可以在录制服务中检查它。如果录制的文件大小接近可用内存大小,您可以停止录制我该怎么做获取媒体录制器文件大小您可以在录制时设置广播检查接收器中的状态请检查我的问题我已要求在达到内存限制时停止录制广播要检查内存状态是什么,或者您也可以在录制服务中检查广播。如果录制的文件大小接近可用内存大小,您可以停止您的录制如何获取媒体录制器文件大小您可以在录制时设置广播检查接收器中的状态请检查我的问题我已要求在达到内存限制时停止录制要检查内存状态的广播是什么,或者您也可以在录制服务中检查它。如果录制的文件大小更接近若要释放内存大小,您可以停止录制如何获取媒体录制器文件大小您可以在录制时设置广播检查接收器中的状态请检查我的问题我已要求在达到内存限制时停止录制广播要检查内存状态,或者您也可以在录制服务中检查广播。如果录制的文件大小接近可用内存大小您可以停止录制如何获取媒体录制器文件大小