Android как воспроизводить видео с помощью VLC Player? - PullRequest
6 голосов
/ 13 февраля 2012

У меня есть приложение для воспроизведения видео в 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 ]

3 голосов
/ 17 марта 2014

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

т.е. просто "видео / *" не будет работать для меня

3 голосов
/ 13 февраля 2012

Больше похоже на

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, чтобы подтвердить полезную нагрузку;дублирующие классы полезной нагрузки, если необходимо;сдавайтесь и раздражайтесь после того, как разработчик проигнорирует вас, если действие не экспортируется.

В идеале вы должны транслировать намерение «просмотреть поток с этого URL», а vlcdirect или любой другой подходящийприложение поднимет его, но я не знаю, реагирует ли на это vlcdirect или любое другое приложение.

0 голосов
/ 14 мая 2018

Предыдущие ответы не сработали. После небольшого поиска я нашел официальные документы здесь .

В принципе, вот оно:

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

Вы можете удалить ненужные детали для вас.

...