【问题标题】:How to save video file in SD card in android如何在Android中将视频文件保存在SD卡中
【发布时间】:2017-08-09 14:34:58
【问题描述】:

我正在尝试将视频文件保存在 SD 卡上,但得到空指针。 看看我的代码。

我只需要在 SD 卡中创建一个文件夹并在其中保存视频。 当我没有使用 fileUri 时,不会崩溃。

File mediaFile = new
                File(Environment.getExternalStorageDirectory().getAbsolutePath() 
                        + "/myvideo"+System.currentTimeMillis() +".mp4");   
        Intent intent = new Intent(MediaStore.ACTION_VIDEO_CAPTURE);
        fileUri = Uri.fromFile(mediaFile);
        intent.putExtra(MediaStore.EXTRA_OUTPUT, fileUri);
        startActivityForResult(intent, VIDEO_CAPTURE);
     @Override
    public void onActivityResult(int requestCode, int resultCode, Intent data) {
                if (requestCode == VIDEO_CAPTURE) {
            if (resultCode == Activity.RESULT_OK) {
                 Toast.makeText(getActivity(), "Video has been saved to:\n" +
                    data.getData(), Toast.LENGTH_LONG).show();
            } else if (resultCode == Activity.RESULT_CANCELED) {
                Toast.makeText(getActivity(), "Video recording cancelled.", 
                      Toast.LENGTH_LONG).show();
            } else {
                Toast.makeText(getActivity(), "Failed to record video", 
                      Toast.LENGTH_LONG).show();
            }
        }
                    }

谢谢。 建议赞赏。

【问题讨论】:

  • 你有没有在 manifest 文件中添加“
  • @DonChakkappan。是的,我已经在 Manifest 中声明了这一点。
  • 你能粘贴错误吗
  • 错误日志:java.lang.RuntimeException:将结果 ResultInfo{who=null, request=131173, result=-1, data=null} 传递给活动失败

标签: android video android-sdcard video-recording


【解决方案1】:

要在 SD 卡上保存文件,请按照代码操作。

在清单文件中添加“android.permission.WRITE_EXTERNAL_STORAGE”。”

然后使用代码-

filePath = getExternalFilesDirs("/")[1].toString();
 OutputStreamWriter writer;
        File file;
        File folder = new File(filePath);
        if (!folder.exists()) {
            folder.mkdirs();
        }

file = new File(filePath + "yourfilename.txt");
writer = new OutputStreamWriter(ostream, "UTF-8");

//save your video file here

writer.close();

【讨论】:

    【解决方案2】:

    试试这个,

     private static File getOutputMediaFile(int type){
    
            // Check that the SDCard is mounted
            File mediaStorageDir = new File(Environment.getExternalStoragePublicDirectory(
                      Environment.DIRECTORY_PICTURES), "MyCameraVideo");
    
    
            // Create the storage directory(MyCameraVideo) if it does not exist
            if (! mediaStorageDir.exists()){
    
                if (! mediaStorageDir.mkdirs()){
    
                    output.setText("Failed to create directory MyCameraVideo.");
    
                    Toast.makeText(ActivityContext, "Failed to create directory MyCameraVideo.", 
                            Toast.LENGTH_LONG).show();
    
                    Log.d("MyCameraVideo", "Failed to create directory MyCameraVideo.");
                    return null;
                }
            }
    
    
            // Create a media file name
    
            // For unique file name appending current timeStamp with file name
            java.util.Date date= new java.util.Date();
            String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss")
                                 .format(date.getTime());
    
            File mediaFile;
    
            if(type == MEDIA_TYPE_VIDEO) {
    
                // For unique video file name appending current timeStamp with file name
                mediaFile = new File(mediaStorageDir.getPath() + File.separator +
                "VID_"+ timeStamp + ".mp4");
    
            } else {
                return null;
            }
    
            return mediaFile;
        }
    

    参考这个链接,

    http://androidexample.com/Camera_Video_Capture_And_Save_On_SDCard_-_Android_Example/index.php?view=article_discription&aid=123

    希望对你有帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-11-28
      • 2019-01-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多