Как воспроизвести потоковое видео с URL-адреса в Android?


person user3167333    schedule 07.02.2014    source источник


Ответы (3)


Добавьте приведенный ниже код в свой файл Activity.java.

protected void onCreate(Bundle savedInstanceState)
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.videoPlayer);
try {        
    String link="http://videocloud/video.mp4";
    VideoView videoView = (VideoView) findViewById(R.id.myVideoView);
    final ProgressBar pbLoading = (ProgressBar) findViewById(R.id.pbVideoLoading);
    pbLoading.setVisibility(View.VISIBLE);
    MediaController mediaController = new MediaController(this);
    mediaController.setAnchorView(videoView);
    Uri video = Uri.parse(link);
    videoView.setMediaController(mediaController);
    videoView.setVideoURI(video);
    videoView.start();
    videoView.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
                        @Override
                        public void onPrepared(MediaPlayer mp) {
                            pbLoading.setVisibility(View.GONE);
                        }
    });
} catch (Exception e) {
    // TODO: handle exception
    Toast.makeText(this, "Error connecting", Toast.LENGTH_SHORT).show();
}

}

Если вам не нужен MediaController, установите для него значение null videoView.setMediaController(null)

person Plo_Koon    schedule 28.05.2015

Я не думаю, что достаточно просто создать намерение, вам также необходимо создать контекст для воспроизведения видео: например, объект VideoView.

По ссылке ниже есть предложение для этого шаблона: http://androidcodeexamples.blogspot.sg/2011/08/how-to-play-mp4-video-in-android-using.html

По сути, объект MediaController создается с помощью объекта VideoView. Затем VideoView используется для запуска операции после установки URI.

Редактировать: Вероятно, основная проблема заключается в том, что ваш URL-адрес содержит параметры POST и не является уникальным идентификатором ресурса (в данном случае видеофайла).

Параметры swfUrl и pageUrl, скорее всего, уникальны для сервера, предоставляющего вам страницу.

person jlouzado    schedule 07.02.2014
comment
Спасибо за ответ. Однако я попробовал свой код с этой переменной MOVIE_URL=rtmp://musicbox.cdnvideo.ru/musicbox-live/musicbox.sdp, и он отлично работает. - person user3167333; 07.02.2014
comment
В этом случае вы пытались назначить весь захваченный URL-адрес rtmp переменной MOVIE_URL? - person jlouzado; 07.02.2014

Вы можете использовать библиотеку Vitamio для Android, где вы можете установить swfUrl и pageUrl.

Вот руководство.

person KnowIT    schedule 31.03.2015