美文网首页我爱编程
Android开发拍摄视频在图库不显示问题

Android开发拍摄视频在图库不显示问题

作者: wuli见见 | 来源:发表于2018-04-13 16:42 被阅读0次

            把拍摄的视频文件放在了自定义的路径下,无论是使用发广播的方式还是插入数据库的方式,都是无法更新图库,只能查看文件管理器。各种方法都尝试了下,最后才发现系统根本就无法扫描到自己App自定义的路径,很郁闷啊。所以只能在拍摄视频的时候将视频保存在系统能扫描到的路径中,问题解决,我要哭会儿。

    测试了几个机型都能在图库里刷新出来,如果还是有不能在图库显示的机型,请告知,谢谢。

    如果道友有好的方法,麻烦请告知一下哈。

    具体方法:

    public void takeVideoFromCamera() {

        SimpleDateFormat sdf =new SimpleDateFormat("yyyyMMddHHmmss");

        String filename = sdf.format(new Date(System.currentTimeMillis())) +".mp4";

        //需要在 Environment.getExternalStorageDirectory().getAbsolutePath() 后边加上 /DCIM/Camera

        File cameraFile =new File(

                Environment.getExternalStorageDirectory().getAbsolutePath() +"/DCIM/Camera",

                filename);

        if (!cameraFile.getParentFile().exists()) {

            cameraFile.getParentFile().mkdirs();

        }

        Intent intent =new Intent(MediaStore.ACTION_VIDEO_CAPTURE);

        //设置视频录制的最长时间 30分钟

        intent.putExtra (MediaStore.EXTRA_DURATION_LIMIT,30*60);

        //设置视频的最大大小 1000M

        intent.putExtra(MediaStore.EXTRA_SIZE_LIMIT, 1000*1024*1024L);

        //设置视频录制的画质

        intent.putExtra(MediaStore.EXTRA_VIDEO_QUALITY, 1);

        intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(cameraFile));

        startActivityForResult(intent, REQUEST_CODE_TAKE_VIDEO);

    }

    使用发广播的方式:

    public static void saveVideoToGallery(Context context, Filefile){

        Uri localUri = Uri.fromFile(file);

        Intent localIntent =new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, localUri);

        context.sendBroadcast(localIntent);

    }

    如果视频文件保存在系统能扫描到的路径,则不需要使用插入数据库的方式了。

    希望能帮到你

    相关文章

      网友评论

        本文标题:Android开发拍摄视频在图库不显示问题

        本文链接:https://www.haomeiwen.com/subject/bkzckftx.html