Я пытаюсь играть видео в своем приложении. Это должно быть встроено.
Я прошел "Видеофайлы игры в Android" поток.
Я могу играть свое использование видео VideoView, как упомянуто в этом обсуждении. Но существует несколько проблем.
Мне нужно полноэкранное видео, как я расширяю VideoView на полный экран? Это расширит видео также?
Мне не нужно значение по умолчанию, играть/передавать/кнопки остановки вообще. В основном мне нужно проигрывание непрерывного цикла видео.
Я попробовал класс MediaPlayer как в здесь, но он никогда не работал. На что должен быть похожим формат строки, если у меня есть свой видеофайл в res/raw каталоге? Я действительно не хочу видеофайл, играемый от sdcard. Как это может быть связано наряду с приложением?
Если какой-либо из этих двух подходов будет работать, то я буду более обеспечен.
Это - мой код:
videoHolder = new VideoView(this);
// videoHolder = (VideoView)findViewById(R.id.videoview);
LayoutParams params = new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT);
videoHolder.setLayoutParams(params);
videoHolder.setMediaController(new MediaController(this));
setContentView(videoHolder);
//
//
//// I tested and found that it works fine for .wmv, .3gp and .mp4
//// videoHolder.setVideoURI(Uri.parse("file:///sdcard/video.3gp"));
videoHolder.setVideoURI(Uri.parse("res/raw/demo.3gp"));
videoHolder.requestFocus();
videoHolder.start();
Странно прокомментированные работы URL (та с sdcard). Другой не работает. Я попробовал много комбинаций из "file:// res/raw/demo.3gp" только к "демонстрации".
Какова была бы корректная строка для доступа к файлу?
Я решил проблему:
1.
Чтобы удалить кнопки продолжения / паузы, снимите медиа-контроллер. Для проблемы с зацикливанием
поместите OnCompletionListener
, чтобы, когда видео доходит до конца, оно запускалось снова:
videoView.setOnCompletionListener(
new MediaPlayer.OnCompletionListener() {
public void onCompletion(MediaPlayer mp) {
videoView.start();
}
});
2.
Чтобы изменить размер видео, переопределите метод onMeasure ()
в VideoView
следующим образом:
public class MyVideoView extends VideoView {
public MyVideoView(Context context) {
super(context);
}
@Override
protected void onMeasure (int widthMeasureSpec, int heightMeasureSpec)
{
setMeasuredDimension(480,800);
}
}
Я знаю, что этой теме уже несколько недель, но вам не нужно копировать видеофайл на SD-карту, чтобы просто воспроизвести его. Используйте следующее, но вставьте имя вашего пакета вместо «com.yourcompany.yourproject»:
videoView.setVideoURI(Uri.parse("android.resource://com.yourcompay.yourproject/" + R.raw.yourvideoresource) );