Однако вместо создания специальных кнопок (что можно сделать при желании) мы создаем контроллер MediaController, который обеспечит необходимыми кнопками.
и в, медиаконтроллер представления VideoView устанавливается вызовом setMediaController для включения элементов управления запуском воспроизведения, паузой и быстрым переходом. Если вы хотите управлять видеоконтентом программно, используя собственные кнопки, то для этого можно вызывать методы start, pause, stopPlayback и seekTo.
Имейте в виду, что в этом примере MediaPlayer по-прежнему используется, просто он не виден. Фактически можно “проигрывать” видеоконтент в MediaPlayer непосредственно. Если вы вернетесь к примеру из, поместите файл с кинофильмом на SD-карту и укажете путь к этому файлу в AUDIO_PATH, то обнаружите, что он прекрасно воспроизведет аудиотрек фильма, хотя видео видно не будет.
В то время как MediaPlayer имеет метод setDataSource, в VideoView такого нет. Вместо этого VideoView использует методы setVideoPath и setVideoURI . Предполагая, http://monitorus.pro/about/health/ что вы поместили файл с фильмом на SD-карту, изменим код в, закомментировав setVideoURI и убрав комментарий с setVideoPath, а также при необходимости подкорректировав путь к файлу. Когда вы запустите приложение вновь, то сможете слышать аудиотрек и видеть видеоконтент в VideoView. Формально можно было бы вызвать setVideoURI , ниже, и получить тот же эффект, что и от setVideoPath:
videoView.setVideoURI(Uri.parse("file://" +
Environment.getExternalStoragePublicDirectory(
Environment.DIRECTORY MOVIES) + "/movie.mp"));
Возможно, вы заметили, что в VideoView не предусмотрено метода для чтения данных из файлового дескриптора, как в MediaPlayer. Также вы могли обратить внимание, что MediaPlayer имеет пару методов для добавления SurfaceHolder к экземпляру MediaPlayer (SurfaceHolder — это нечто вроде окна просмотра для изображений или видео). Одним из методов MediaPlayer, принимающих SurfaceHolder, является create(Context context, Uri uri, SurfaceHolder holder), а другим — setDisplay(SurfaceHolder holder).
А теперь давайте посмотрим, как записывается медиаконтент. |