Android 意图让视频播放器在 res/raw 文件中播放视频

Posted

技术标签:

【中文标题】Android 意图让视频播放器在 res/raw 文件中播放视频【英文标题】:Android intent to video player to play video in res/raw file 【发布时间】:2015-04-25 17:06:59 【问题描述】:

我是 android 新手,使用堆栈 android 视频播放器播放视频时遇到问题。我到处搜索答案,但没有找到。

我的代码是:

Uri uri = Uri.parse("android.resource://" + getPackageName() + "/" + R.raw.lp);
Intent intent = new Intent(android.content.Intent.ACTION_VIEW);
intent.setPackage(getPackageName());
intent.setDataAndType(uri, "video/*");
startActivity(intent);

它不起作用并且应用程序崩溃。怎么了。这取决于智能手机型号吗?我的智能手机型号是 THL 5000,Android 4.4.2。

谢谢!

【问题讨论】:

【参考方案1】:

尝试像这样初始化。这对我有用

Uri.parse("android.resource://" + getPackageName() + "/raw/file_name");

【讨论】:

它显示了 ActivityNotFoundException: '没有找到处理 Intent 的 Activity act=android.intent.action.VIEW dat=android.resource://example.qqq.com.dcp/raw/lp. mp4 typ=video/* pkg=example.qqq.com.dcp ' if(getContext().getPackageManager().resolveActivity(intent, PackageManager.MATCH_DEFAULT_ONLY) != null) 【参考方案2】:

很遗憾,其他应用(Android 意图)无法访问您的资源。

    您需要创建一个 ContentProvider,或将数据存储在任何人都可以访问的位置(SD 卡或本地存储的公共文件夹中)1。 另一个解决方案可能是使用 Android MediaPlayer。 MediaPlayer 可以从 URL 或您的资源运行音频和视频文件,其中源文件位于您的设备上。要播放视频文件,您需要将其与 SuffaceView 结合使用。 Here 就是一个完整的例子。 一种快速且最简单的解决方案是在 WebView 中播放视频。该视频位于资产文件夹中,只需打开“file:///android_asset/video.mp4”网址即可。

【讨论】:

以上是关于Android 意图让视频播放器在 res/raw 文件中播放视频的主要内容,如果未能解决你的问题,请参考以下文章

Android高级_视频播放控件

android studio模拟器无法播放视频

在哪里存储本地视频以在 Android Studio 中播放

在 Android 上播放 mp4 文件时没有视频显示

Flutter - 播放来自平台特定文件夹的声音文件(例如 Android 的 android/app/src/main/res/raw)

Android 通过意图播放视频