VideoView задерживается при запуске воспроизведения многоадресного потока (иногда) - PullRequest
0 голосов
/ 16 мая 2019

У меня есть простое приложение для Android, которое содержит WebView для загрузки моего приложения на базе Web_ и VideoView для воспроизведения видео (с использованием протокола HTTP) и Multicast Stream (Live TV с использованием протокола UDP).

Приложение Web_Based, видеосервер и сервер Live TV находятся на локальном сервере (Ubuntu 12.04), поэтому мое приложение Android подключено к ним локально с помощью кабеля Ethernet (не через Интернет).

Кроме того, моим Android-устройством является STB с Android версии 6.

Приложение Android разработано для воспроизведения видео или Live TV, когда оно запускается простым нажатием кнопки. Но проблема в том,что ТОЛЬКО НЕКОТОРЫЕ, когда я включаю STB (и мгновенно запускаю приложение Android), есть задержка примерно на 30 секунд для запуска Live TV.Эта проблема не происходит для видео вообще.

Пример потока Live TV: udp: //239.0.0.1: 1234
Пример URL-адреса видео: http://192.168.200.235/test.mp4

// Это частьмоя основная функция для воспроизведения UDP Stream

PlayerActivity.videoView.stopPlayback();
final Uri video = Uri.parse("udp://"+url.replaceAll("\\s+",""));
PlayerActivity.getInstance().runOnUiThread(new Runnable() {
    @Override
    public void run() {
        PlayerActivity.videoView.setVisibility(View.GONE);
        PlayerActivity.videoView.setVisibility(View.VISIBLE);
        PlayerActivity.videoView.setVideoURI(video);
        PlayerActivity.videoView.start();

        PlayerActivity.videoView.setOnErrorListener(new MediaPlayer.OnErrorListener() {
            @Override
            public boolean onError(MediaPlayer mp, int what, int extra) {
                Log.e("ERROR LOG FOR UDP STREAM",":( I don't get any error here !");
                return false;
            }
        });
    }
});

1 Ответ

0 голосов
/ 28 мая 2019

Хотя Android может воспроизводить поток UDP, но он не предназначен для этого.Поэтому лучше использовать протокол HSL или RTMP для воспроизведения в реальном времени, а также для видеофайлов. Вы можете использовать HLS.

...