Эй, Я пытаюсь исправить ошибку в проекте. Они вызвали к существованию mediacontroller и установили его якорный вид для просмотра видео.
Но когда я воспроизвожу видео, mediacontroller рисуется по всему экрану и не плавает над видеоизображением, как предполагает документация.
код:
MediaController mediaController = new MediaController(mVideoView.getContext());
mediaController.setAnchorView(mVideoView);
mVideoView.setMediaController(mediaController);
И XML;
<VideoView
android:layout_width="854px"
android:layout_weight="1"
android:id="@+id/welcome_video"
android:layout_height="480px"
android:layout_gravity="center"
></VideoView>
Я не вижу, что здесь не так. Кто-нибудь знает, как это исправить?
Я исправил эту проблему, это было связано с LinearLayout, которое было у VideoView. Он был установлен как match_parent, а не wrap_content.
Более подробный ответ:
Оберните видеообзор с помощью LinearLayout
<LinearLayout
android:id="@+id/media_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentTop="true">
<VideoView
android:id="@+id/live_video"
android:layout_width="match_parent"
android:layout_height="240dp"
/>
</LinearLayout>
просто установитеAnchor() на LinearLayout
mediaLayout = (LinearLayout)view.findViewById(R.id.media_layout);
liveVideo = (VideoView) view.findViewById(R.id.device_live_video);
mc = new MediaController(getActivity());
// Here it is
mc.setAnchorView(mediaLayout);
liveVideo.requestFocus();
liveVideo.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mp) {
mp.setOnVideoSizeChangedListener(new MediaPlayer.OnVideoSizeChangedListener() {
@Override
public void onVideoSizeChanged(MediaPlayer mp, int width, int height) {
LogUtils.LOGD(TAG, "Media Player Video Size changed.");
/*
* add media controller
*/
liveVideo.setMediaController(mc);
/*
* and set its position on screen
*/
//mc.setAnchorView(liveVideo);
}
});
}
});