Android : 如何在不退出当前 Activity 的情况下使用 VLC? (对于背景音频)

Android : How to use VLC without exiting current Activity ? (For background audio)

推测: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 显示在屏幕上,导致我的应用程序 Pause/Stop 并中断了我的其他方式的音频流。

如果我能在一个视图中打开 VLC,我实际上可以在我的布局中显示,那就更好了。

我知道可以在没有 GUI 的情况下将服务用作 Activity,但这意味着要更改 VLC 本身,我真的希望避免这种情况。

有什么秘诀可以实现吗?

-'-'-'-'-'-'-'-'-'-'-'-'-'-'-'-'-'-'-'-'-'-'- '-'-'-'-'-'-'-'-'-'-'-'-'-'-'-'-'-'-'-'-'-'-'-'-'- '-'-'-'-'-'-'-'-'-'-

编辑/回答: 正如 Vikash Kumar Verma 所说,使用 LibVLC 是必经之路。 我必须按照 this guide. 为我的 ABI (mips) 编译它 我发现的最新应用示例是 this one.

我的 RTSP 音频流 运行 在 Windows 7 上以 VLC 作为服务器设法将延迟降低到 550 毫秒。我不得不进入媒体 class 并更改第 771 行,如下所示:

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

是的,您可以在布局中使用 VLC。看看 MyVlcPlayer。我已经使用 libVLC 库在我的应用程序中播放视频。