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

Воспроизведение полноэкранного видео

Я пытаюсь воспроизвести видео в своем приложении. Он должен быть встроен.

Я просмотрел "Воспроизвести видеофайлы в Android" .

Я могу воспроизводить свое видео с помощью VideoView, как упоминалось в этом обсуждение. Но есть несколько проблем.

  • Мне нужно полноэкранное видео, как растянуть VideoView на весь экран? Будет ли это растянуть видео?

  • Мне вообще не нужны кнопки play/forward/stop по умолчанию. В основном Мне нужно непрерывное воспроизведение видео.

Я попробовал класс MediaPlayer, как в здесь, но он никогда не работал. Каким должен быть формат строки, если я есть ли мой видеофайл в папке res/raw? Я действительно не хочу видео файл, воспроизводимый с SD-карты. Как его можно связать вместе с приложением?

Если какой-либо из этих двух подходов работает, мне будет лучше.

Это мой код:

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). Другой не работает. Я пробовал много комбинаций из файла:// res/raw/demo.3gp "только для" demo ".

Какова была бы правильная строка для доступа к файлу?

4b9b3361

Ответ 1

Не нужно делать какие-либо кодировки для воспроизведения видео в полноэкранном режиме

Примените следующий формат макета к xml, содержащему видеообъявление, и он обязательно воспроизведет видео в полноэкранном режиме. как он работает. :) Надеюсь, поможет

 <?xml version="1.0" encoding="utf-8"?>
 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
           android:layout_width="fill_parent"
           android:layout_height="fill_parent" >
   <VideoView android:id="@+id/myvideoview"
             android:layout_width="fill_parent"
             android:layout_alignParentRight="true"
             android:layout_alignParentLeft="true"
             android:layout_alignParentTop="true"
             android:layout_alignParentBottom="true"
             android:layout_height="fill_parent">
    </VideoView>
 </RelativeLayout>

Плюс добавление mediacontroller также даст вам контроллер для использования.

Ответ 2

Я решил проблему:

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);
        }

    }

Ответ 3

Я знаю, что эта тема несколько недель, но вам не нужно копировать видеофайл на SD-карту, просто чтобы воспроизвести ее. Используйте следующее, но вставьте имя своего пакета вместо "com.yourcompany.yourproject":

videoView.setVideoURI(Uri.parse("android.resource://com.yourcompay.yourproject/" + R.raw.yourvideoresource));

Ответ 4

Если вы хотите воспроизвести видео в полноэкранном режиме, просто добавьте эту строку кода в ваш файл Androidmanifest.xml в том упражнении, в котором будет воспроизводиться это видео. Просто добавьте эти две строки в файл манифеста Android.

 android:theme="@android:style/Theme.NoTitleBar.Fullscreen" 
 android:configChanges="orientation|screenSize"

Как и в моем файле androidmanifest.xml, я добавил его

  <activity
        android:name="com.appliconic.straminglivevideo.MainActivity"
        android:theme="@android:style/Theme.NoTitleBar.Fullscreen" 
        android:configChanges="orientation|screenSize"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

Ответ 5

Измененный @Javanator ответит немного, это не растянет видео:

<?xml version="1.0" encoding="utf-8"?>
 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
           android:layout_width="fill_parent"
           android:layout_height="fill_parent" >
   <VideoView android:id="@+id/myvideoview"
              android:layout_width="match_parent"
              android:layout_height="match_parent"
              android:layout_centerVertical="true"
              android:layout_centerHorizontal="true">
    </VideoView>
 </RelativeLayout>

Надеюсь, это поможет кому-то:)