Android如何使用VLC播放器播放视频?

时间:2012-02-13 10:46:52

标签: android video-streaming

我在Android中有播放视频的应用程序,如

https://play.google.com/store/apps/details?id=com.vlcforandroid.vlcdirectprofree&hl=en

我想在我的应用中集成此应用。我有视频流的Url,我想在这个应用程序(Vlc Direct)中打开这个视频,不知道吗?

我使用以下方式打开此应用程序:

Intent i = new Intent(Intent.ACTION_MAIN);
            PackageManager manager = getPackageManager();
            i = manager.getLaunchIntentForPackage("com.vlcdirect.vlcdirect");
            i.addCategory(Intent.CATEGORY_LAUNCHER);
            startActivity(i);

但它是如何从视频流或其他任何视频流播放器开始的?

3 个答案:

答案 0 :(得分:3)

更喜欢,

Intent i = new Intent(Intent.ACTION_MAIN);
i.setComponent(new ComponentName("com.vlcdirect.vlcdirect", "com.vlcdirect.vlcdirect.URLStreamerActivity"));
i.putExtra("url", url);
startActivity(i);

假设组件,活动和有效负载如图所示,并且显式或隐式导出活动 - 我不知道实际值,或者活动是否已导出。 vlcdirect不记录此内容,但您可以

  1. 询问开发人员,或

  2. 在您从该应用内的网址流式传输时查看日志,以识别组件和活动;对.apk进行dedex和反编译,以确认有效载荷;必要时重复有效载荷类;如果未导出活动,则在开发人员忽略您之后放弃并放弃。

  3. 理想情况下,您会广播“查看此网址的流”意图,而vlcdirect或任何其他合适的应用程序会选择它,但我不知道vlcdirect或任何其他应用是否会响应此类。

答案 1 :(得分:3)

需要明确告知VLC类型:

Intent i = new Intent(Intent.ACTION_VIEW);
i.setPackage("org.videolan.vlc.betav7neon");
i.setDataAndType(Uri.parse("http://ip:8080"), "video/h264");
startActivity(i);

即。只是“视频/ *”对我不起作用

答案 2 :(得分:0)

以前的答案对我不起作用。经过一番搜索后,我找到了the official docs here

基本上,这是:

int vlcRequestCode = 42; //request code used when finished playing, not necessary if you only use startActivity(vlcIntent)
 Uri uri = Uri.parse("file:///storage/emulated/0/Movies/KUNG FURY Official Movie.mp4"); //your file URI
 Intent vlcIntent = new Intent(Intent.ACTION_VIEW);
 vlcIntent.setPackage("org.videolan.vlc");
 vlcIntent.setDataAndTypeAndNormalize(uri, "video/*");
 vlcIntent.putExtra("title", "Kung Fury");
 vlcIntent.putExtra("from_start", false);
 vlcIntent.putExtra("subtitles_location", "/sdcard/Movies/Fifty-Fifty.srt"); //subtitles file
 startActivityForResult(vlcIntent, vlcRequestCode);

您可以删除不必要的部分。