嘿 我正在尝试修复项目中的错误。 他们已经调用了一个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>
我看不出这里有什么问题。有人知道如何解决这个问题吗?
答案 0 :(得分:3)
我解决了这个问题,它与VideoView在里面的LinearLayout有关。它被设置为match_parent而不是wrap_content。
答案 1 :(得分:1)
更详细的答案:
使用LinearLayout
包装VideoView<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>
将setAnchor()放到 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);
}
});
}
});