Android: Как использовать VLC, не выходя из текущей активности? (Для фонового аудио)

Предполагается: VLC для Android установлен на устройстве и работает нормально.

На самом деле я могу запустить VLC со своим URL-адресом и прослушивать аудиопоток с возможностями реального времени ( < 1 сек) с этим:

 private void startRTSPStreamOnVLC(String ip, String port, String path) {
    final String url = "rtsp://" + ip + ":" + port + "/" + path;

    Intent i = new Intent(Intent.ACTION_VIEW);
    i.setPackage("org.videolan.vlc");
    i.setDataAndType(Uri.parse(url), "video/h264");
    i.setComponent(new ComponentName("org.videolan.vlc", "org.videolan.vlc.gui.video.VideoPlayerActivity"));
    startActivity(i);
}

Проблема в том, что он выводит VLC на экран, вызывая приостановку / остановку моего приложения и прерывая мой другой аудиопоток.

Было бы еще лучше, если бы я мог открыть VLC в представлении, которое я мог бы показать в моем макете на самом деле.

Я знаю, что Сервисы будут использоваться как Действия без графического интерфейса, но это будет означать изменение самого VLC, чего я действительно хочу избежать.

Любой секретный совет для достижения этого?

-'- '-'- '-'- '-'- '-'- '-'- '-'- '-'- '-'- '-'- '-'- '-'-'-" -'- '-'- '-'- '-'- '-'- '-'- '-'- '-'- '-'- '-'- '-'- '-'-'-" -'- '-'- '-'-'-'-

РЕДАКТИРОВАТЬ / Ответ: Как сказал Викаш Кумар Верма, использование LibVLC было способом. Я должен был скомпилировать его для моего ABI (MIPS), следуя этому руководству. Самый последний пример приложения, которое я нашел, был этот.

Удалось снизить задержку моего аудиопотока RTSP на 550 мс, работающую в Windows 7 с VLC в качестве сервера. Мне пришлось перейти в класс Media и изменить строку 771 следующим образом:

 addOption(":network-caching=0"); // Was 1500

1 ответ

Решение

Да, вы можете использовать VLC в вашем макете. Посмотрите на MyVlcPlayer. Я использую библиотеку libVLC для воспроизведения видео в моем приложении.

Другие вопросы по тегам