调用本地视频播放器

来自Silica Library | 間奏時光
Silica讨论 | 贡献2019年7月25日 (四) 03:21的版本 (创建页面,内容为“Category:Android 2019-07-25 11:16 == 使用场景 ==   唔想自己写本地播放器。<br> == 用法 == === AndroidManifest.xml === <pre> <provider a…”)
(差异) ←上一版本 | 最后版本 (差异) | 下一版本→ (差异)
跳到导航 跳到搜索

2019-07-25 11:16

使用场景

  唔想自己写本地播放器。

用法

AndroidManifest.xml

<provider
    android:name="<自定义的 FileProvider 路径>"
    android:authorities="<包名>.fileProvider"
    android:exported="false"
    android:grantUriPermissions="true"
    tools:replace="name,authorities,exported,grantUriPermissions">
    <meta-data
        android:name="android.support.FILE_PROVIDER_PATHS"
        android:resource="@xml/provider_paths"
        tools:replace="name,resource" />
</provider>

自定义的 FileProvider.java

public class BaseFileProvider extends FileProvider {
}

provider_paths.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <paths>
        <external-path
            name="external_files"
            path="." />

        <!-- 额外内容 -->
        <external-path
            name="external_storage_root"
            path="." />
        <external-path
            name="beta_external_path"
            path="Download/" />
        <external-path
            name="beta_external_files_path"
            path="Android/data/" />
        <!-- 额外内容 -->
    </paths>
</resources>

调用播放

Uri uri = FileProvider.getUriForFile(activity, "<包名>.fileProvider", new File(<路径>));
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
intent.setDataAndType(uri, "video/*");
model.ac.startActivity(intent);