2018-09-10

调用系统播放器播放本地视频,很多没真正实践过的人可能也会觉得so easy,“不过就是个隐式Intent,我没用过还没听过吗”

我一开始就是这么想的,以下是我从网上搜索到的调用方式:


2018-09-10_第1张图片
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也是必须要有的,因为一旦碰到真的一个视频播放的应用都没有的时候,能避免应用崩溃。

你可能感兴趣的:(2018-09-10)