使用 Intent 录制视频保存空文件

Video recording using Intent saves empty file

这是我用来从 android 设备以 MP4 格式录制视频的代码。该文件正在创建,但大小为 0 字节。 这是我的代码:-

Button buttonStart;
File newFile;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    initUI();
    buttonStart.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            try {
                newFile = File.createTempFile("vid", ".mp4", Environment.getExternalStorageDirectory());
            } catch (IOException e) {
                e.printStackTrace();
            }
            Uri outputFileUri = Uri.fromFile(newFile);
            Intent record = new Intent(MediaStore.ACTION_VIDEO_CAPTURE);
            record.putExtra(MediaStore.EXTRA_OUTPUT, outputFileUri);
            startActivityForResult(record, 5);
        }
    });
}

protected void initUI(){
    buttonStart = (Button) findViewById(R.id.buttonRecord);
}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    if(requestCode == 5){
        if(resultCode == RESULT_OK){
            try {
                newFile = File.createTempFile("vid", ".mp4", Environment.getExternalStorageDirectory());
            } catch (IOException e) {
                e.printStackTrace();
            }
            Toast.makeText(this, "Video Captured Successfully...!!", Toast.LENGTH_LONG).show();

        }
    }
}

我不明白哪里出了问题。 有谁能够帮助我 ... 谢谢

String strVideoPath=null;//定义全局变量

打开一个互联网进行视频录制

void displayCamera() {
        File imagesFolder = new File(Environment
                .getExternalStorageDirectory(), getResources()
                .getString(R.string.app_name) + "foldername");
        try {
            imagesFolder.mkdirs();
        } catch (Exception e) {
        }

        File f_image = new File(imagesFolder, new Date().getTime() + ".mp4");
        Uri uriSavedVideo = Uri.fromFile(f_image);
        Intent intent = new Intent(
                MediaStore.ACTION_VIDEO_CAPTURE);
        intent.putExtra(MediaStore.EXTRA_OUTPUT, uriSavedVideo);
        strVideoPath = f_image.getAbsolutePath();

        try {
            startActivityForResult(intent, 111);
        } catch (ActivityNotFoundException e) {
            e.printStackTrace();
        }
    }

赶上 OnActivity Result

@Override
    public void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if (requestCode == 111) {
            if (resultCode == mActivity.RESULT_OK) {
                //do stuff here on success
            }else{
                strVideoPath=null;
            }
        }
    }

首先你需要创建一个目录

     File newFileLocation;
     try {
        newFileLocation = new File(Environment.getExternalStorageDirectory(), "videoyo");

                imagesFolder.mkdirs();
        newFile = new File(newFileLocation , "vid" + ".mp4");
            } catch (Exception e) {
        }