Подтвердить что ты не робот

Как играть .mp4 видео в видео в андроид?

Я работаю над приложением видеопроигрывателя, я хочу воспроизвести видео .mp4 в собственном видеообъявлении. Я не умею проигрывать видео с помощью url. Я получаю сообщение об ошибке Извините, что это видео невозможно воспроизвести, а также не умеет воспроизводить загруженное видео в собственном видеообъявлении.

Мой код для воспроизведения видео в видеообъявлении:

String mUrl = "http://www.servername.com/projects/projectname/videos/1361439400.mp4";

VideoView mVideoView  = (VideoView)findViewById(R.id.videoview)
videoMediaController = new MediaController(this);
mVideoView.setVideoPath(mUrl);
videoMediaController.setMediaPlayer(mVideoView);
mVideoView.setMediaController(videoMediaController);
mVideoView.requestFocus();
mVideoView.start();

Поделитесь своими идеями тем же.

Спасибо.

4b9b3361

Ответ 1

Наконец, это работает для меня.

private VideoView videoView;

videoView = (VideoView) findViewById(R.id.videoView);

Uri video = Uri.parse("http://www.servername.com/projects/projectname/videos/1361439400.mp4");
videoView.setVideoURI(video);
videoView.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
  @Override       
  public void onPrepared(MediaPlayer mp) {
       mp.setLooping(true);
       videoView.start();
    }
});

Надеюсь, это поможет другим.

Ответ 2

MP4 - это просто контейнер - видео и аудиопоток внутри него оба будут закодированы в разных форматах.

Android изначально поддерживает только определенные типы форматов. Вот список здесь.

Убедитесь, что поддерживается тип видео и аудио. Просто потому, что он говорит, что "mp4" автоматически не означает, что он должен воспроизводиться.

Ответ 3

Использовать следующим образом:

Uri uri = Uri.parse(URL); //Declare your url here.

VideoView mVideoView  = (VideoView)findViewById(R.id.videoview)
mVideoView.setMediaController(new MediaController(this));       
mVideoView.setVideoURI(uri);
mVideoView.requestFocus();
mVideoView.start();

Другой метод:

  String LINK = "type_here_the_link";
  VideoView mVideoView  = (VideoView) findViewById(R.id.videoview);
  MediaController mc = new MediaController(this);
  mc.setAnchorView(videoView);
  mc.setMediaPlayer(videoView);
  Uri video = Uri.parse(LINK);
  mVideoView.setMediaController(mc);
  mVideoView.setVideoURI(video);
  mVideoView.start();

Если вы получаете эту ошибку Не удалось открыть файл на стороне клиента, попробовав на стороне сервера Ошибка в Android. а также Обратитесь к этому вопросу. Надеюсь, это даст вам некоторое решение.

Ответ 4

Проверьте формат видеоизображения. Оказание формата mp4 началось с уровня API 11 и формат должен быть mp4 (H.264)

Я столкнулся с одной и той же проблемой, мне пришлось преобразовать свое видео во многие форматы, прежде чем я попал в формат: Используйте общий видео конвертер, чтобы конвертировать видео в mp4. Он работает как шарм.

Ответ 5

Я не уверен, что это проблема, но то, что сработало для меня, вызывает mVideoView.start(); внутри обратный вызов события mVideoView.setOnPreparedListener.

Например:

Uri uriVideo = Uri.parse(<your link here>);

MediaController mediaController = new MediaController(mContext);
mediaController.setAnchorView(mVideoView);
mVideoView.setMediaController(mediaController);
mVideoView.setVideoURI(uriVideo);
mVideoView.requestFocus();

mVideoView.setOnPreparedListener(new MediaPlayer.OnPreparedListener()
{
     @Override
     public void onPrepared(MediaPlayer mp)
     {
          mVideoViewPeekItem.start();
     }
});