我有像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);
但它是如何从视频流或任何其他视频流播放器开始的?
更像,
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没有记录这个,但你可以
理想情况下,您将广播“查看此URL中的流”意图,vlcdirect或任何其他合适的应用程序会选择它,但我不知道vlcdirect或任何其他应用程序是否响应此类。
需要明确告知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);
即只是“视频/ *”对我不起作用
以前的答案对我不起作用。经过一番搜索,我找到了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);
您可以为您删除不必要的部件。