1

我正在尝试使用 phonegap 播放原始文件夹中的视频。我稍微修改了原始插件。这是代码:

       Uri uri = Uri.parse( "android.resource://" + getPackageName() + "/raw/"+R.raw.test);
    // Uri uri = Uri.parse("http://www.test.sociato.de/test.mp4");

    Intent intent = null;
        // Display video player
        intent = new Intent(Intent.ACTION_VIEW);
        intent.setDataAndType(uri, "video/*");

    this.ctx.startActivity(intent);

该视频位于原始文件夹中,名为 test.mp4。代码不起作用。

我认为视频的网址不正确?我会很高兴得到任何帮助。

4

4 回答 4

2

我和这个摔跤了一段时间。我可以从 Android 资源播放视频的唯一方法是先将其复制到 SD 卡。这是我的代码:

File sdCard = Environment.getExternalStorageDirectory(); 

File dir = new File (sdCard.getAbsolutePath() + "/myfolder");
if(dir.isDirectory() != true) {
dir.mkdirs();

InputStream ins = getResources().openRawResource(R.raw.myvid);
int size = ins.available();
// Read the entire resource into a local byte buffer.
byte[] buffer = new byte[size];
ins.read(buffer);
ins.close();
FileOutputStream fos = new FileOutputStream(new File(dir, "myvid.m4v"));
fos.write(buffer);
fos.close(); 
}

File myvid = new File(dir, "myvid.m4v");
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(Uri.fromFile(myvid), "video/*");  
this.startActivity(intent); 
于 2011-12-19T03:18:56.863 回答
1

我认为您无法将应用程序私有包中的视频播放到默认视频播放器,因为您的默认视频播放器无法识别此路径。

要让它播放,你必须copy this video file in sdcard然后给出该文件的 URI,在这种情况下它可以正常工作。

于 2011-11-25T11:04:11.557 回答
-1

我已经成功播放了一个视频文件,我直接从该资源加载到 res/raw 文件夹中。

这是在

安卓 1.5

API 等级 3

文件大小低于 50M

我的代码片段如下

        Uri video= Uri.parse("android.resource://MYPACKAGENAME/" + R.raw.presence); 
    videoView.setMediaController(mediaController);
        videoView.setVideoURI(video);
        videoView.start();

我看到的主要问题是让 App 识别原始文件夹中的 mp4 文件

我是android开发的新手,但这就是我所做的,希望对您有所帮助。

在第一行中,当我键入“R.raw”时,Eclipse 将其显示为错误,我键入了句点并希望 Eclipse 向我显示资源的快速列表,但它不存在。

我在另一篇文章中阅读了对项目进行清理的内容,当我单击 PROJECT - CLEAN 识别出资源时,资源列表将被刷新。

我认为需要的另一件事是文件名必须是小写的。当它是混合大小写时,它不会出现。

希望这可以帮助。

于 2012-02-17T03:32:38.450 回答
-1

上面的这段代码:

Uri video= Uri.parse("android.resource://MYPACKAGENAME/" + R.raw.presence); 
videoView.setMediaController(mediaController);
videoView.setVideoURI(video);
videoView.start();

对我来说很棒!

MYPACKAGENAME = 工作包的完整名称。我被困在这里一分钟。

于 2014-05-24T00:06:12.747 回答