У меня возник вопрос относящееся к видео стриму. Например видео воспроизводится онлайн, во время воспроизведения нужно ли проверять соединение с сетью каждую секунду? Если да, то каким образом. Потому что я с запросами я работал только для того чтобы получать JSON строку. Или вообще как правильно построить структуру воспроизведения видео?
Вам нужен бродкаст ресивер, который будем уведомлять ваше приложение каждый раз когда состояние сети будет меняться.
public class NetworkReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals(ConnectivityManager.CONNECTIVITY_ACTION)) {
NetworkInfo networkInfo = intent.getParcelableExtra(ConnectivityManager.EXTRA_NETWORK_INFO);
if (networkInfo != null && networkInfo.getDetailedState() == NetworkInfo.DetailedState.CONNECTED) {
Log.d("Network", "Соединение есть");
} else if (networkInfo != null && networkInfo.getDetailedState() == NetworkInfo.DetailedState.DISCONNECTED) {
Log.d("Network", "Соединение оборванно");
}
}
}
}
И не забываем прописать в манифесте
<receiver
android:name=".receivers.NetworkReceiver">
<intent-filter>
<action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
</intent-filter>
</receiver>
Возможно, вам на самом деле нужна не информация о том, доступен или нет сервер, а информация о том, достаточно или недостаточно плееру данных для работы. Если сервер на какое-то время отвалился, но буфера хватило, то пользователю это неважно. Пользователю будет важно, если сервер доступен, но скорости не хватает.
Поищите в библиотеке плеера колбэк, который возвращает статус. Если вы используете ExoPlayer (я надеюсь, вы используете его, а не стандартный?), то в колбэк ExoPlayer.EventListener в метод onPlayerStateChanged() может вернуться статус STATE_BUFFERING, при получении которого можно показать пользователю прогресс-бар.
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости