Воспроизведение полноэкранного видео
Я пытаюсь воспроизвести видео в своем приложении. Он должен быть встроен.
Я просмотрел "Воспроизвести видеофайлы в 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 ".
Какова была бы правильная строка для доступа к файлу?
Ответы
Ответ 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>
Надеюсь, это поможет кому-то:)