【问题标题】:How to play a local video from resources folder如何从资源文件夹播放本地视频
【发布时间】:2011-12-05 20:23:16
【问题描述】:

我已经找了一个多星期了,但我还没有做到。

我只想播放 2 秒时长的视频作为我的应用程序的初始介绍,因此 SD 卡和 URL 流解决方案是不可能的。我想将 mp4 视频文件放在 /res/raw 文件夹中(例如)并播放它,全屏,没有媒体控制器......应该不会那么难!!!

我已经按照http://developer.android.com/guide/appendix/media-formats.html#corehttp://developer.android.com/guide/appendix/media-formats.html#coreAndroid 的建议(我已经尝试了几个)对我的视频进行了编码

我尝试了许多不同的解决方案,例如以下一种,应该可以工作:

    VideoView videoHolder = (VideoView) this.findViewById(R.id.videoView1);
    videoHolder.setMediaController(new MediaController(this));
    Uri uri = Uri.parse("android.resource://mysite/raw/" + R.raw.intro__video);
    videoHolder.setVideoURI(uri);
    videoHolder.start();

我尝试了几个URI地址,我认为问题不存在。 我试过模拟器 1.6、2.1 和 2.33。我已经在三种不同的真实设备上进行了尝试。

我不知道现在该尝试什么。 StackOverflow中有很多类似的问题,但答案却很少。以前的答案是关于将视频放入 SD 卡(我不适合),但大多数线程都没有得到作者的回答,所以我们不知道他是否最终设法做到了。

提前非常感谢您。也许这一次我们可以一劳永逸地回答这个问题:-)

编辑 大多数情况下,设备只是保持黑色,视频没有播放。 对于尝试的某些编码,设备会显示一个错误对话框,提示“无法播放此视频”。 如果视频文件本身有问题(我不这么认为,因为我尝试了很多不同的格式、分辨率和编码),请给我一个经过验证的视频文件,以便我检查是否有问题就是这样……

【问题讨论】:

    标签: android


    【解决方案1】:

    我认为您没有正确构建 URI。试试这个:

    Uri uri = Uri.parse("android.resource://mysite/" + R.raw.intro__video);
    

    或者这个:

    Uri uri = Uri.parse("android.resource://mysite/raw/intro__video");
    

    【讨论】:

    • 感谢您的回答。我都试过了。什么都没发生。当然文件名是“intro__video.mp4”,但我照常省略扩展名。
    • 哦,伙计们,多么尴尬...我正在从 XML 布局设置背景到 VideoView,它显然隐藏了正在播放的视频。希望这个提示对将来的人有所帮助。为了您的帮助,我给您 +1;-)(哦,我还不能,我需要 15 声望,抱歉)
    • @thelawnmowerman - 感谢分享。学习新的方法来避免把事情搞砸总是好的。 :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-19
    相关资源
    最近更新 更多