Медиаконтроллер не работает

Мой макет, содержащий videoView

 <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1" >

        <ImageView
            android:id="@+id/imgv_image"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:contentDescription="@string/app_name"
            android:scaleType="centerCrop"
            android:visibility="invisible" />

        <VideoView
            android:id="@+id/videoview"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_alignParentBottom="true"
            android:layout_marginBottom="20dp"
            android:layout_alignParentLeft="true"
            android:layout_alignParentRight="true"
            android:layout_alignParentTop="true" />
    </RelativeLayout>

И Medicontrolleri в java-коде:

final MediaController mediaController = new MediaController(context);
            mediaController.setAnchorView(videoView);
            mediaController.setMediaPlayer(videoView);
            mediaController.show(0);

            videoView.setMediaController(mediaController);
            videoView.setVideoURI(mediaUri);
            videoView.setOnPreparedListener(new OnPreparedListener() {

                @Override
                public void onPrepared(MediaPlayer mp) {
                    mediaController.show(3000);
                }
            });
            videoView.start();

Но это не работает, есть скриншот: введите здесь описание изображения

Спасибо за вашу помощь!


person Justin    schedule 27.03.2014    source источник


Ответы (3)


Попробуй это :

public static void playVideo(String urlPath) {

VideoView mVideoview; // Added this line
mVideoView =(VideoView) findViewByid(R.yourvideoviewid);

try {
// Start the MediaController
MediaController mediacontroller = new MediaController(mContext);
mediacontroller.setAnchorView(mVideoview);
// Get the URL from String VideoURL
Uri mVideo = Uri.parse(urlPath);
mVideoview.setMediaController(mediacontroller);
mVideoview.setVideoURI(mVideo);

} catch (Exception e) {
Log.e("Error", e.getMessage());
e.printStackTrace();

}

mVideoview.requestFocus();
mVideoview.setOnPreparedListener(new OnPreparedListener() {
// Close the progress bar and play the video
public void onPrepared(MediaPlayer mp) {
mVideoview.start();

}
});

mVideoview.setOnCompletionListener(new OnCompletionListener() {

public void onCompletion(MediaPlayer mp) {

}
});
}
person Siddharth_Vyas    schedule 27.03.2014
comment
Спасибо за ваш ответ, но я думаю, что между вашим и моим нет разницы - person Justin; 27.03.2014

<VideoView
 android:id="@+id/videoView"
 android:layout_width="match_parent"
 android:layout_height="wrap_content" />

Ява

// Get VideoView in layout xml
VideoView mVideoView = (VideoView) findViewById(R.id.videoView);

// MediaController provide controller, contains the buttons
// like "Play/Pause", "Rewind", "Fast Forward" and a progress slide
MediaController mediaController = new MediaController(this);

mediaController.setAnchorView(mVideoView);
mVideoView.setMediaController(mediaController);

mVideoView.setVideoPath("/path/to/your/videofile");
mVideoView.requestFocus();
mVideoView.setOnPreparedListener(new OnPreparedListener() {
 public void onPrepared(MediaPlayer mp) {
  mVideoView.start();
 }
});
person Kanaiya Katarmal    schedule 27.03.2014
comment
Спасибо за ваш ответ, но давайте скажите мне, в чем разница между вашим и моим? - person Justin; 27.03.2014

Добавьте макет фрейма для представления привязки в свой xml

<FrameLayout android:id="@+id/controllerAnchor"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_alignParentStart="true"
        android:layout_alignParentRight="true"
        />

и установите это на свой медиа-контроллер

mediacontroller.setAnchorView (findViewById (R.id.controllerAnchor);

person venkatesh venkey    schedule 16.04.2019