MediaMetadataRetriever media = new MediaMetadataRetriever(); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { Uri newUri = FileProvider.getUriForFile(mView.getContext(), mView.getContext().getPackageName() + ".FileProvider", new File(videoPath)); media.setDataSource(mView.getContext(), newUri);// videoPath 本地视频的路径 } else { media.setDataSource(videoPath, new HashMap<String, String>());// videoPath 本地视频的路径 }
清单文件
<provider android:name="android.support.v4.content.FileProvider" android:authorities="${applicationId}.FileProvider" android:exported="false" android:grantUriPermissions="true"> <meta-data android:name="android.support.FILE_PROVIDER_PATHS" android:resource="@xml/file_paths" /> </provider>
XML
<paths xmlns:android="http://schemas.android.com/apk/res/android"> <root-path name="root" path="" /> <files-path name="files" path="." /> <cache-path name="cache" path="." /> <external-path name="external" path="." /> <external-files-path name="external_file_path" path="." /> <external-cache-path name="external_cache_path" path="." /> </paths>