Как играть .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();
Поделитесь своими идеями тем же.
Спасибо.
Ответы
Ответ 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();
}
});