Android 将视频从其路径保存到图库中

Android save video in gallery from its path

希望你们都做得很好。我一直在尝试将视频保存在我的画廊中。我有已经保存在隐藏文件夹中的视频路径。我只想将该视频保存在我的画廊中。这是我可能会犯错误的代码。如果您能解决,我将不胜感激。

            File newfile;
            AssetFileDescriptor videoAsset = getContentResolver().openAssetFileDescriptor(Uri.parse( path), "r");
            FileInputStream in = videoAsset.createInputStream();
            String root = Environment.getExternalStorageDirectory().getAbsolutePath();
            File dir = new File(root + "/" + "Pictures");
            if (!dir.exists()) {
                dir.mkdirs();
            }
            newfile = new File(dir, "status_"+System.currentTimeMillis()+".mp4");
            if (newfile.exists()) newfile.delete();
            OutputStream out = new FileOutputStream(newfile);
            // Copy the bits from instream to outstream
            byte[] buf = new byte[1024];
            int len;
    
            while ((len = in.read(buf)) > 0) {
                out.write(buf, 0, len);
            }
    
            in.close();
            out.close();

通过此代码,我遇到了 无内容提供商 /storage/emulated/0/android/data/ 异常。因为我已经添加了图像提供程序和写入存储的权限,但我不知道视频需要什么提供程序或者代码有问题?

我找到了解决方案,我犯的错误是从一开始就没有获得正确的 FileInputStream。 只需替换这个

 AssetFileDescriptor videoAsset = getContentResolver().openAssetFileDescriptor(Uri.parse( path), "r");
 FileInputStream in = videoAsset.createInputStream();

有了这个你就可以开始了:D

  FileInputStream in = new FileInputStream(new File(path));