【发布时间】:2021-12-09 14:34:18
【问题描述】:
我正在尝试从 MediaStore.ACTION_VIDEO_CAPTURE 的捕获中获取真正的 mp4 文件 . 生成的文件不是真正的 MP4,因为 iPhone 无法读取此文件。 android 生成一个 3gpp 但带有 mp4 扩展名。
我尝试使用网络转换器从这个假的 mp4 文件生成一个 mp4,结果可以在 Iphone 中使用!
请问,如何才能获得真正的 MP4?
我的代码:
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
ContentValues values = new ContentValues(1);
values.put(MediaStore.Video.Media.MIME_TYPE, "video/mp4");
getContentResolver().delete(MediaStore.Video.Media.EXTERNAL_CONTENT_URI,null);
Uri outputFileUri = getContentResolver().insert(MediaStore.Video.Media.EXTERNAL_CONTENT_URI, values);
Intent captureIntent = new Intent(MediaStore.ACTION_VIDEO_CAPTURE);
captureIntent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION | Intent.FLAG_GRANT_WRITE_URI_PERMISSION);
captureIntent.putExtra(MediaStore.EXTRA_OUTPUT, outputFileUri);
activityResultLauncher.launch(captureIntent);
Log.i("IFFFFF","");
} else {
Log.i("ELOOSSEEEE","");
Intent captureIntent = new Intent(MediaStore.ACTION_VIDEO_CAPTURE);
File file = new File(Environment.getExternalStorageDirectory(), "video.mp4");
Uri outputFileUri = Uri.fromFile(file);
captureIntent.putExtra(MediaStore.EXTRA_OUTPUT, outputFileUri);
activityResultLauncher.launch(captureIntent);
}
【问题讨论】:
标签: java android video capture mediastore