android7.0以上调用系统播放器及播放本地视频

1.AndroidManifest.xml 配置:

	1.权限
    
    
    
    
    
    

	2.   
            
        

2.res下新建 xml 文件夹并添加文件 file_paths.xml 内容如下:



    

3.文件播放

			  if (Build.VERSION.SDK_INT >= 23) {
                    int REQUEST_CODE_CONTACT = 101;
                    String[] permissions = {
                            Manifest.permission.WRITE_EXTERNAL_STORAGE};
                    //验证是否许可权限
                    for (String str : permissions) {
                        if (mActivity.checkSelfPermission(str) != PackageManager.PERMISSION_GRANTED) {
                            //申请权限
                            mActivity.requestPermissions(permissions, REQUEST_CODE_CONTACT);
                            return;
                        } else {
                            //***************************************************************************************
                            // 这里就是权限打开之后自己要操作的逻辑

                            String sdcard = Environment.getExternalStorageDirectory().toString();

                            File file1 = new File(sdcard + "/Cache");
                            if (!file1.exists()) {
                                file1.mkdirs();
                            }
                            File file = new File(file1.getAbsolutePath(), "1.mp4");

                            if (!file.exists()) {
                                InputStream initialStream = null;
                                try {
//                                    initialStream = mActivity.getResources().openRawResource(R.raw.video);
                                    initialStream = App.getInstance().getResources().getAssets().open("1.mp4");
                                    byte[] buffer = new byte[initialStream.available()];
                                    initialStream.read(buffer);
                                    OutputStream outStream = new FileOutputStream(file);
                                    outStream.write(buffer);
                                } catch (IOException e) {
                                    e.printStackTrace();
                                }
                            }

                            Uri uri = null;
                            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
                                uri = FileProvider.getUriForFile(mActivity, "com.ingcare.vbmapp.FileProvider", file);
                            } else {
                                uri = Uri.fromFile(file);
                            }
                            Intent intent = new Intent(Intent.ACTION_VIEW);
                            intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
                            intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
                            intent.setDataAndType(uri, "video/*");
                            mActivity.startActivity(intent);
                        }
                    }
                }

4.将mp4文件储存到apk

两种方式:

1.assets

android7.0以上调用系统播放器及播放本地视频_第1张图片
调用:

App.getInstance().getResources().getAssets().open("1.mp4");
2.res-raw

android7.0以上调用系统播放器及播放本地视频_第2张图片
调用:

mActivity.getResources().openRawResource(R.raw.video);

你可能感兴趣的:(android)