我有一个奇怪的问题 . (我是android新手)在我的应用程序中,我有意发射摄像机以及启动摄像机 . 现在看来,当我点击图像按钮显示图像时,它会显示图像 . 但是当试图显示视频时,它说“无法播放视频” . 所以我觉得我的手机出了问题,所以我重新启动了手机,然后就好了 . 所以当再次测试它没有 .
所以我知道我的代码没有任何问题,但是在拍摄完之后似乎无法显示视频 . (并且仅在重启设备后播放)
有人可以帮帮我吗?
谢谢
EDIT
拍摄我使用的视频:
Intent imageIntent = new Intent (android.provider.MediaStore.ACTION_VIDEO_CAPTURE);
timeStamp = new SimpleDateFormat("ddMMMyyyy_HH:mm:ss").format(new Date());
File videosFolder = new File(Environment.getExternalStorageDirectory(), "Cool Videos");
videosFolder.mkdirs();
image = new File(imagesFolder.getPath(), "Cvidoes_" + timeStamp + ".mp4");
fUri = Uri.fromFile(image);
imageIntent.putExtra(MediaStore.EXTRA_OUTPUT, fileUri);
startActivityForResult(imageIntent, TAKE_PICTURE);
然后在我的“全屏显示”
Intent intent = new Intent();
intent.setAction(android.content.Intent.ACTION_VIEW);
intent.setDataAndType(Uri.fromFile(temp_file),getMimeType(temp_file.getAbsolutePath()));
startActivity(intent);
但在我最近更新到Android 5.0版之前,奇怪的事情已经发挥作用 .
EDIT 2
好的,我已经解决了这个问题 .
我在“OnActivityResult”部分中几乎没有任何内容,但添加了此内容并且所有内容都重新运行:
MediaScannerConnection.scanFile(
getApplicationContext(),
new String[]{image.getAbsolutePath()},
null,
new OnScanCompletedListener() {
@Override
public void onScanCompleted(String path, Uri uri) {
Log.v("VideoScan",
"file " + path + " was scanned seccessfully: " + uri);
}
});
那么为什么自更新以来它停止工作,现在必须添加这个?
1 回答
严格地说,我们无法真正回答这个问题 .
您添加的是用于安排将您的视频编入
MediaStore
索引的代码 . 接收file:///
Uri
的视频播放器 - 正如您在ACTION_VIEW
Intent
中使用的那样 - 不应该真正关心MediaStore
. 显然,您的设备升级到Android 5.0后,或者确实在您的设备升级到Android 5.0之后 . 恕我直言,这是视频播放器中的一个错误 .现在,一般情况下,如果您希望用户能够与您的应用分开处理视频,则需要将其编入
MediaStore
索引 . 这将自动发生......最终 . 你的代码添加使它更快地发生,这通常是一个好主意 .所以,我会更多地看到你绊倒了视频播放器中的一个错误,其修复程序碰巧是你可能需要的一些代码 .
换句话说,这只是办公室的另一天...... :-)