Ссылка: https://google -developer-training.gitbooks.io / Android-разработчик-продвинутый-практический-курс / блок-5-продвинутый-графика-и-представления / урок-13-медиа / 13-1-p-воспроизведение-видео-с-videoview / 13-1-p-воспроизведение-видео-с-videoview.html
Я пытался выполнить действия, указанные в справочной информации, но медиаплеерне отображается в активности.Итак, как я могу избавиться от этой проблемы?
onCreate Метод:
onCreate
Здесь я попытался добавить MediaController после получения VideoView id
MediaController
VideoView
mVideoView = findViewById(R.id.video_view); if (savedInstanceState != null) { mCurrentPosition = savedInstanceState.getInt(PLAYBACK_TIME); } MediaController mediaController = new MediaController(this); mediaController.setMediaPlayer(mVideoView); playing video:
(здесь метод инициализации видео, использующий соответствующий Uri)
private void initializePlayer() { Uri videoUri = getMedia(VIDEO_SAMPLE); mVideoView.setVideoURI(videoUri); if (mCurrentPosition > 0) { mVideoView.seekTo(mCurrentPosition); } else { // Skipping to 1 shows the first frame of the video. mVideoView.seekTo(1); } mVideoView.start(); } private Uri getMedia(String mediaName) { return Uri.parse("android.resource://" + getPackageName() + "/raw/" + mediaName); }
package com.example.sagar.videoplay; import android.net.Uri; import android.os.Build; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.widget.MediaController; import android.widget.VideoView; public class MainActivity extends AppCompatActivity { private static final String VIDEO_SAMPLE = "demo"; private VideoView mVideoView; private int mCurrentPosition = 0; private static final String PLAYBACK_TIME = "play_time"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mVideoView = findViewById(R.id.video_view); if (savedInstanceState != null) { mCurrentPosition = savedInstanceState.getInt(PLAYBACK_TIME); } MediaController mediaController = new MediaController(this); mVideoView.setMediaController(mediaController); } //its a method which takes string as a input and return a url private Uri getMedia(String mediaName) { return Uri.parse("android.resource://" + getPackageName() + "/raw/" + mediaName); } private void initializePlayer() { Uri videoUri = getMedia(VIDEO_SAMPLE); mVideoView.setVideoURI(videoUri); if (mCurrentPosition > 0) { mVideoView.seekTo(mCurrentPosition); } else { // Skipping to 1 shows the first frame of the video. mVideoView.seekTo(1); } mVideoView.start(); } private void releasePlayer() { mVideoView.stopPlayback(); } @Override protected void onStart() { super.onStart(); initializePlayer(); } @Override protected void onStop() { super.onStop(); releasePlayer(); } @Override protected void onPause() { super.onPause(); if (Build.VERSION.SDK_INT < Build.VERSION_CODES.N) { mVideoView.pause(); } } @Override protected void onSaveInstanceState(Bundle outState) { super.onSaveInstanceState(outState); outState.putInt(PLAYBACK_TIME, mVideoView.getCurrentPosition()); } }
Вы используете его неправильно:
Используйте вот так,
mVideoView = findViewById(R.id.video_view); if (savedInstanceState != null) { mCurrentPosition = savedInstanceState.getInt(PLAYBACK_TIME); } MediaController mediaController = new MediaController(this); mVideoView.setMediaController(mediaController); // Change in this line.
Ссылка на заказ: VideoView