调用系统播放器播放本地视频,很多没真正实践过的人可能也会觉得so easy,“不过就是个隐式Intent,我没用过还没听过吗”
我一开始就是这么想的,以下是我从网上搜索到的调用方式:
image.png
事实上,以上这种方式也可以调用出市面上某些支持的播放器,比方说我试验过的,优酷是可以被唤起的。
但是系统的视频应用,我试过锤子、小米、华为都无法被唤起。
原因在于uri的生成方式不对,正确姿势如下。
Uri uri = Uri.parse("file://" + Environment.getExternalStorageDirectory().getPath() + "/VideoRecorderTest/" + FileToStr(videoList)[position]);
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(uri, "video/*");
try {
startActivity(intent);
} catch (Exception e) {
T.showShort(getApplicationContext(), "没有默认播放器");
e.printStackTrace();
}
重点在于path前面加上的那个“file://”,这样子才能正确唤起大部分的播放器应用,try...catch也是必须要有的,因为一旦碰到真的一个视频播放的应用都没有的时候,能避免应用崩溃。
网友评论