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

问题描述 投票:6回答:3

我有像Android一样在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);

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

android video-streaming
3个回答
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. 从该应用程序中的URL流式传输时查看日志,以识别组件和活动;对.apk进行dedex和反编译,以确认有效载荷;必要时重复有效载荷类;如果未导出活动,则在开发人员忽略您之后放弃并放弃。

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


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);

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


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);

您可以为您删除不必要的部件。

© www.soinside.com 2019 - 2024. All rights reserved.