所以我正在进行从相机获取视频的简单操作:
Intent takeVideoIntent = new Intent(MediaStore.ACTION_VIDEO_CAPTURE);
mVideoFileUri = getOutputMediaFile(); // create a file to save the video in specific folder
if(mVideoFileUri != null) {
takeVideoIntent.putExtra(MediaStore.EXTRA_OUTPUT, mVideoFileUri);
}
startActivityForResult(takeVideoIntent, ACTION_TAKE_VIDEO);
对于我所有的测试设备,这可以正常工作,但在Samsung galaxy S4
它是这样的:
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
switch (requestCode) {
case ACTION_TAKE_VIDEO:
if (resultCode == Activity.RESULT_OK) {
String videoPath;
if(mVideoFileUri != null) {
videoPath = mVideoFileUri.getPath();
} else {
Uri videoUri = data.getData();
videoPath = KovlaApplication.POST_KITKAT_SDK ? PostKitKatFilePathHelper.getPath(getActivity(), videoUri)
: getRealPathFromURI(videoUri);
}
}
问题在于,data
和mVideoFileUri
都是空的,因此无效。
我意识到,如果我带走了EXTRA_OUTPUT它可以正常工作,但在这种情况下,它无法用于其他设备