Android:无法预览创作期间录制的视频
在Android开发过程中,我使用了一个视频录制意图结构。我将录制的视频传输到云应用程序。我使用Android提供的视频录制界面,而不是特殊的界面。在某些设备上,当我按下录制的视频的预览按钮时,录制将关闭并删除。我该怎么办 编辑:Android:无法预览创作期间录制的视频,android,android-camera,android-camera-intent,android-video-record,Android,Android Camera,Android Camera Intent,Android Video Record,在Android开发过程中,我使用了一个视频录制意图结构。我将录制的视频传输到云应用程序。我使用Android提供的视频录制界面,而不是特殊的界面。在某些设备上,当我按下录制的视频的预览按钮时,录制将关闭并删除。我该怎么办 编辑: 欢迎来到SO!您应该发布所有相关代码,以便我们评估发生了什么。即使我拥有所需的所有权限,但当我保存媒体并按下预览按钮时,它将关闭。我添加了代码作为注释,谢谢添加代码。如果它实际上没有回答您的问题,请不要将其作为答案发布。您可以随时编辑原始帖子以包含其他信息。这次我是为
欢迎来到SO!您应该发布所有相关代码,以便我们评估发生了什么。即使我拥有所需的所有权限,但当我保存媒体并按下预览按钮时,它将关闭。我添加了代码作为注释,谢谢添加代码。如果它实际上没有回答您的问题,请不要将其作为答案发布。您可以随时编辑原始帖子以包含其他信息。这次我是为你做的,所以别担心。您是否遇到任何异常,或者您的应用程序是否同时崩溃?logcat在这里也很有用。
预览按钮
不是你应用程序的一部分,是吗?谢谢@NikosHidalgo。应用程序不会崩溃。虽然您可以在某些设备上流畅地播放,但在某些设备上它会直接关闭。应用程序工作正常,但录像机丢失。
public void OpenVideoCamera(){
if (ContextCompat.checkSelfPermission(fragment_activity, Manifest.permission.CAMERA) != PackageManager.PERMISSION_GRANTED ||
ContextCompat.checkSelfPermission(fragment_activity, Manifest.permission.READ_EXTERNAL_STORAGE) !=
PackageManager.PERMISSION_GRANTED ||
ContextCompat.checkSelfPermission(fragment_activity, Manifest.permission.WRITE_EXTERNAL_STORAGE) !=
PackageManager.PERMISSION_GRANTED ||
ContextCompat.checkSelfPermission(fragment_activity,Manifest.permission.RECORD_AUDIO)
!= PackageManager.PERMISSION_GRANTED) {
AlertDialog.Builder alertBuilder = new AlertDialog.Builder(fragment_activity);
alertBuilder.setCancelable(true);
alertBuilder.setTitle(getString(R.string.permission_required_text));
alertBuilder.setMessage(getString(R.string.camera_permission_text).replace("{0}",
getString(R.string.application_name)));
alertBuilder.setPositiveButton(android.R.string.yes, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
requestPermissions(new String[] { Manifest.permission.WRITE_EXTERNAL_STORAGE,
Manifest.permission.CAMERA,
Manifest.permission.RECORD_AUDIO,
Manifest.permission.READ_EXTERNAL_STORAGE },
PERMISSIONS_REQUEST_VID_UPLOAD);
}
});
AlertDialog alert = alertBuilder.create();
alert.show();
//sneaker.warning(getString(R.string.require_permission));
} else {
StrictMode.VmPolicy.Builder builder = new StrictMode.VmPolicy.Builder();
StrictMode.setVmPolicy(builder.build());
String temp_path = Environment.getExternalStorageDirectory().getPath() + "/" +
getString(R.string.application_name) + "/temp";
File temp_folder = CommonFeaturesController.getCommonFeaturesInstance().setFilePermissionFromFile(new
File(temp_path));
try {
if (!temp_folder.exists()) {
if (CommonFeaturesController.getCommonFeaturesInstance().isAuthorized())
temp_folder.mkdirs();
}
} catch (Exception e) {
}
mediaFile = CommonFeaturesController.getCommonFeaturesInstance().setFilePermissionFromFile(new
File(temp_path, "VIDEO_" + String.valueOf(System.currentTimeMillis())
+ ".mp4"));
Intent takeVideoIntent = new Intent(MediaStore.ACTION_VIDEO_CAPTURE);
takeVideoIntent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(mediaFile));
if (takeVideoIntent.resolveActivity(getContext().getPackageManager()) !=
null) {
startActivityForResult(takeVideoIntent, CAMERA_VID_REQUEST);
CommonFeaturesController.getCommonFeaturesInstance().setIsExternalIntent(true);
}
}
}