在 Android 上使用带有 libVLC 的特定网络

问题描述

我在我的 Android 应用程序中使用 libVLC 从我通过 WiFi 连接到的相机通过 rtsp 流式传输视频。

一般来说,流式传输工作正常,但如果我通过 WiFi(不提供互联网)连接相机并打开移动数据,则似乎存在流式传输问题。我使用 bindProcesstoNetwork 来确保流媒体是通过我的 WiFi 网络完成的。在某些设备(如搭载 Android 9 的华为 Mate 10)上,流媒体工作正常(似乎使用 WiFi 并忽略打开移动数据),但在其他设备(如搭载 Android 10 的三星 Note 10)上,当我使用新的网络 API 时似乎 VLC 正在尝试通过移动数据进行连接,并且仅在失败一段时间后才决定使用我相机的 WiFi(尽管我使用了 bindProcesstoNetwork)。 我收到错误日志

VLC-std: Unable to determine our source address: This computer has an invalid IP address: 0.0.0.0

令人惊讶的是,如果我从系统设置连接到我的 WiFi,它工作正常......

我发现 some comments 媒体流是在一个单独的进程中完成的,它会忽略对 bindProcesstoNetwork调用,但在某些设备(和 Android 版本)上似乎可以工作,而在其他设备上则不能。

我已经在 Videolan 论坛上问过这个问题,但没有成功。

有没有办法强制 libVLC 使用指定的网络进行流式传输?

解决方法

我不认为 LibVLC 可以做到这一点,而且它有点超出多媒体框架的范围。

如果我是你,我会在应用方面处理这个问题,使用类似 How do I connect to a specific Wi-Fi network in Android programmatically?

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...