У меня есть приложение, которое использует bindProcessToNetwork(), чтобы принудительно отключить все соединения по Wi-Fi-соединению. Это делается потому, что соединение Wi-Fi подключено к камере без подключения к Интернету, поэтому, естественно, андроид пытается вытолкнуть весь трафик через сотовую связь, которая имеет полное подключение к Интернету. Код для этого:Android bindProcessToNetwork и поток RTSP через MediaPlayer
final ConnectivityManager connection_manager =
(ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkRequest.Builder request = new NetworkRequest.Builder();
request.addTransportType(NetworkCapabilities.TRANSPORT_WIFI);
connection_manager.requestNetwork(request.build(), new ConnectivityManager.NetworkCallback()
{
@Override
public void onAvailable(Network network)
{
try {
connection_manager.bindProcessToNetwork(network);
} catch (Exception e) {
e.printStackTrace();
}
}
});
Это прекрасно работает при подключении к камере через HTTP выдавать команды и т.д. Тем не менее, при инициализации потока RTSP и пытается его просмотра через андроид MediaPlayer, он не будет подключаться , Код для медиа-плеера:
mMediaPlayer = new MediaPlayer();
mMediaPlayer.setSurface(new Surface(mTextureView.getSurfaceTexture()));
mMediaPlayer.setWakeMode(getActivity().getApplicationContext(), PowerManager.PARTIAL_WAKE_LOCK);
mMediaPlayer.setDataSource(loc);
mMediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
mMediaPlayer.prepareAsync();
Если отключить сотовые данные по телефону, код работает отлично, и поток RTSP играет хорошо, так как маршрут по умолчанию находится вне по сети Wi-Fi. Однако, когда обе сети подключены, кажется, что запрос RTSP не проходит через камеру через соединение Wi-Fi. Это почти так, как если бы HTTP-запросы вызывались через Wi-Fi через bindProcessToNetwork(). Это не может быть так, как и в другом месте приложения, когда камера пингуется с помощью [InetAddress.isReachable()] [1]
Есть ли способ заставить соединение MediaPlayer RTSP переходить через соединение Wi-Fi как Что ж?
Вы решили проблему? Я столкнулся с той же проблемой. –