Запись и сохранение видео (Android Java) - PullRequest
0 голосов
/ 24 апреля 2020

Я пытаюсь записать видео с помощью собственного приложения камеры и сохранить его в папке загрузок (/storage/emulated/0/Download).

Когда приложение выполняет функцию captureVideo, оно говорит Msgstr "Запись предупреждения не удалась." Кажется, есть проблема с хранением видео с MediaStore.EXTRA_OUTPUT. Я думаю, что это может быть проблемой с моим URI, потому что, когда я закомментирую эту строку, видео сохраняется в папке DCIM по умолчанию.

Оцените любые советы!

 private void captureVideo() {
    // Capture video
    Intent takeVideoIntent = new Intent(MediaStore.ACTION_VIDEO_CAPTURE);
    File video_file = getFilePath();
    Uri video_uri =  FileProvider.getUriForFile(this, this.getApplicationContext().getPackageName() + ".provider", video_file);
    // Capture in highest quality (1)
    takeVideoIntent.putExtra(MediaStore.EXTRA_VIDEO_QUALITY, 1);
    takeVideoIntent.putExtra(MediaStore.EXTRA_OUTPUT, video_uri);
    startActivityForResult(takeVideoIntent, VIDEO_REQUEST_CODE);
}

public File getFilePath()   {
    File folder = new File(String.valueOf(Environment.getExternalStoragePublicDirectory(
            Environment.DIRECTORY_DOWNLOADS)));
    if(!folder.exists())    {
        folder.mkdir();
    }
    File video_file = new File(folder, "sample.mp4");
    return video_file;
}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data)   {
    super.onActivityResult(requestCode, resultCode, data);
    if(requestCode== VIDEO_REQUEST_CODE)    {
        if(resultCode==RESULT_OK)   {
            Toast.makeText(getApplicationContext(), "Video successfully recorded", Toast.LENGTH_LONG).show();
        }
        else    {
            Toast.makeText(getApplicationContext(), "Video failed to record", Toast.LENGTH_LONG).show();
        }
    }
}
...