通过phonegap videoplayer-plugin从res / raw文件夹播放mp4视频

时间:2011-11-25 11:00:22

标签: android video cordova playback phonegap-plugins

我尝试使用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 个答案:

答案 0 :(得分: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); 

答案 1 :(得分:1)

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

要使其播放,您必须copy this video file in sdcard,然后提供该文件的URI,在这种情况下,它可以正常工作。

答案 2 :(得分:-1)

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

这是在

中完成的

Android 1.5

API Level 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资源被识别时,资源列表将被刷新。

我认为需要的另一件事是文件名必须只是小写。 当它是混合的情况下它不会出现。

希望这有帮助。

答案 3 :(得分:-1)

以上代码:

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

对我来说很棒!

MYPACKAGENAME =完整的套餐名称。我被困在这里一分钟。