假定:Android 的 VLC 已安装在设备上并且工作正常。
实际上,我可以使用我的 URL 启动 VLC,并通过以下方式收听具有实时功能(< 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,那就更好了。
我知道服务可以在没有 GUI 的情况下用作 Activity,但这意味着更改 VLC 本身,我真的希望避免这种情况。
有什么秘诀可以实现吗?
-'-'-'-'-'-'-'-'-'-'-'-'-'-'-'-'-'-'-'-'-'-'-'-'-' -'-'-'-'-'-'-'-'-'-'-'-'-'-'-'-'-'-'-'-'-'-'-'-'-' -'-'-'-'-'-'-'-
编辑/答案:正如 Vikash Kumar Verma 所说,使用 LibVLC 是要走的路。我必须按照本指南为我的 ABI (mips) 编译它。 我发现的最新应用示例就是这个。
在以 VLC 作为服务器的 Windows 7 上运行的 RTSP 音频流的延迟降低到 550 毫秒。我不得不参加媒体课程并更改第 771 行,如下所示:
addOption(":network-caching=0"); // Was 1500