android - 捕获视频并将其存储在特定位置而不是默认位置

标签 android

我想在默认位置以外的特定位置捕获视频和存储视频。

我知道 MediaStore 有一个名为 setOutPutFile("String Location") 的方法。 但它无法正常工作。

我看过很多示例并执行过,但它仅将视频存储在默认位置。有人可以帮我解决这个问题吗?

最佳答案

这样做:

全局声明

public static final int TAKE_PICTURE=0;

然后

Intent photoPickerIntent= new Intent(MediaStore.ACTION_VIDEO_CAPTURE);
                      startActivityForResult(Intent.createChooser(photoPickerIntent,"Take Video"),TAKE_VIDEO);

在OnActivityResult中这样处理:

public void onActivityResult(int requestCode, int resultCode, Intent data) 
    {
        if (resultCode == RESULT_OK) 
         {
                if(requestCode==TAKE_VIDEO)
            {


                try
                {
                    Log.e("videopath","videopath");
                AssetFileDescriptor videoAsset = getContentResolver().openAssetFileDescriptor(data.getData(), "r");
                FileInputStream fis = videoAsset.createInputStream();
                File root=new File(Environment.getExternalStorageDirectory(),"Directory Name");

                  if (!root.exists()) {
                      root.mkdirs();
                  }

                  File file;
                  file=new File(root,"android_"+System.currentTimeMillis()+".mp4" );

                FileOutputStream fos = new FileOutputStream(file);

                byte[] buf = new byte[1024];
                int len;
                while ((len = fis.read(buf)) > 0) {
                    fos.write(buf, 0, len);
                }       
                fis.close();
                fos.close();
              } 
            catch (Exception e) 
            {
               e.printStackTrace();
            }
             }
        }

使用以下权限:

<uses-permission android:name="android.permission.RECORD_VIDEO"/>
<uses-permission android:name="android.permission.RECORD_AUDIO"/>

关于android - 捕获视频并将其存储在特定位置而不是默认位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9033710/

相关文章:

android - 从 Wear 应用程序检查 Wear 设备是否已连接到手持设备,2021

android - 类 SpannableString 不工作

android - 将图像转换为 ARGB_8888 时出现错误 :Bitmap size Exceed VM budget,

android - 如何在抽屉导航中放置项目图标

java - 如何用MediaPlayer调用/data/data中的文件

android - 如何找到我的 sqlite 在 Android 中泄漏的位置

php - 查询从 postman 和 phpmyadmin 运行,但不是从 android 运行

android - 使用带工具栏的 SearchView,加载 Activity 时如何打开键盘?

java - Android编程,token "Invalid Character"语法错误,删除该token

android - 播放一些声音后,媒体播放器无法播放声音