Перейти к содержимому
Меню
  • Java SE
  • Android
  • Поиск
  • Java SE
  • Android

JAVA-HELP

Сайт для Java разработчиков

Руководство по VideoView и MediaController

Android-включает в себя два класса, которые отвечают за реализацию воспроизведения видео на устройствах Android. Эти классы очень легко и просто реализовать при разработке приложений. Сегодня я расскажу вам о том, как использовать эти два класса: VideoView и MediaController , чтобы получить приложение воспроизводящее видео.

В этом примере мы будем играть mp4 с SDCard/External-storage с помощью android.widget.VideoView. Также мы будем управлять видео с помощью MediaController, который содержит кнопки, как «Воспроизведение/Пауза», «Перемотка назад», «Перемотка вперед» и ползунок прогресса,  связав их методом VideoView.setMediaController() .

Пользователь будет иметь возможность контролировать видео с помощью MediaController нажав на видео (или VideoView), чтобы отобразить контроллер. Следуйте инструкциям ниже, чтобы получить рабочий код.

Шаг 1:  Создайте новый проект в AndroidStudio. Убедитесь, что у вас на вашем устройстве/эмуляторе есть MP4-файл на флеш-карте.

Шаг 2: Добавить следующее разрешение в вашем Manifest-файле :

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE">

ПРИМЕЧАНИЕ:  Вы получите диалоговое окно с сообщением «Невозможно воспроизвести это видео», если вы забыли добавить разрешения в манифесте или если нет MP4-файла на флешке.

Шаг 3: Напишите следующий текст в ваш layout-файл:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin">

    <ToggleButton
        android:id="@+id/enableMediaController"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:checked="true"
        android:textOff="Enable MediaController"
        android:textOn="Disable MediaController">

    <VideoView
        android:id="@+id/myvideoview"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content">

</LinearLayout>

Шаг 4: Напишите это в MainActivity:

package com.example.videoviewformp4;

import java.io.File;

import android.support.v7.app.ActionBarActivity;
import android.widget.CompoundButton;
import android.widget.CompoundButton.OnCheckedChangeListener;
import android.widget.MediaController;
import android.widget.Toast;
import android.widget.ToggleButton;
import android.widget.VideoView;
import android.os.Bundle;
import android.os.Environment;

public class MainActivity extends ActionBarActivity {

	ToggleButton enableMediaController;
	VideoView myVideoView;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);

		enableMediaController = (ToggleButton) findViewById(R.id.enableMediaController);
		myVideoView = (VideoView) findViewById(R.id.myvideoview);
		myVideoView.setVideoPath(getViewSrc());
		myVideoView.requestFocus();
		myVideoView.start();

		setMediaController();

		enableMediaController
				.setOnCheckedChangeListener(new OnCheckedChangeListener() {

					@Override
					public void onCheckedChanged(CompoundButton buttonView,
							boolean isChecked) {
						setMediaController();
					}
				});
	}

	private void setMediaController() {
		if (enableMediaController.isChecked()) {
			myVideoView.setMediaController(new MediaController(this));
		} else {
			myVideoView.setMediaController(null);
		}
	}

	private String getViewSrc() {
		File extStorageDirectory = Environment.getExternalStorageDirectory();
		String s = extStorageDirectory.getAbsolutePath() + "/test.mp4";
		Toast.makeText(MainActivity.this, s, Toast.LENGTH_SHORT).show();
		return s;
	}
}

Результат:

Категории
  • Android
  • Уроки Android
Предыдущая заметка

Шагомер для Android KitKat 4.4

Следующая заметка

Создание HelloWorld для Android Wear

Рубрики

  • Android
    • Android-библиотеки
    • Android-сниппеты
    • Material Design
    • Инструменты разработчика
    • Уроки Android
  • Java SE
    • Java-сниппеты
    • Изучение Java
    • Обзор Java-классов
    • Основы Java
  • Kotlin

Популярные записи

  • Загрузка изображений с помощью библиотеки Glide. Начало работы
  • Руководство по использованию ORM DBFlow в Android-приложении
  • Анимированный Toolbar: фичи Design Support Library
  • Я хочу программировать под Android. Вопрос #5
  • Используем ACRA в своем приложении

Copyright © 2020– JAVA-HELP. Все права защищены. Политика конфиденциальности