Как сохранить видеофайл на SD-карту в Android

Я пытаюсь сохранить видеофайл на 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();
            }
        }
                    }

Спасибо. Предложение оценено.


person Shoeb Ahmed Siddique    schedule 18.11.2014    source источник
comment
Вы добавили ‹uses-permission android:name=android.permission.WRITE_EXTERNAL_STORAGE/› в файл манифеста?   -  person Don Chakkappan    schedule 18.11.2014
comment
@ДонЧаккаппан. Да, я уже заявил об этом в манифесте.   -  person Shoeb Ahmed Siddique    schedule 18.11.2014
comment
не могли бы вы вставить ошибку   -  person BzH    schedule 18.11.2014
comment
Журналы ошибок: java.lang.RuntimeException: Ошибка доставки результата ResultInfo{who=null, request=131173, result=-1, data=null} для действия   -  person Shoeb Ahmed Siddique    schedule 18.11.2014


Ответы (2)


Чтобы сохранить файл на 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();
person Siddhartha Maji    schedule 05.08.2017

Попробуй это,

 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

Я хочу, чтобы это помогло вам.

person bhumika rijiya    schedule 18.04.2016