Предположительно: 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), следуя этому руководству. Самый последний пример приложения Я нашел этот.
Удалось снизить задержку до 550 мс моего аудиопотока RTSP, работающего в Windows 7 с VLC в качестве сервера. Мне пришлось пойти в класс Media и изменить строку 771 следующим образом:
addOption(":network-caching=0"); // Was 1500
StartActivity
всегда будет показывать новую активность. Единственный способ сказать VLC, чтобы воспроизвести какой-то звук, - отправить на него трансляцию. Но я не знаю, чтоIntent
должно быть внутри - можете погуглить. - person Ircover   schedule 07.10.2016