我在VideoView上面放了一个百度的MapView,如果视频不播放的话,就是不调用VideoView的start方法,MapView能正常显示,一旦调用start方法,MapView就会变黑,只显示比例尺和缩放按钮。
布局文件如下:
android:layout_width="match_parent"
android:layout_height="match_parent">
public void init() {
back_image = (ImageView) findViewById(R.id.back_image);
mController = new MediaController(this);
mVideo = (VideoView) findViewById(R.id.video);
File video = new File("/storage/sdcard1/hd.mp4");
if(video.exists())
{
mVideo.setVideoPath(video.getAbsolutePath()); // ①
// 设置videoView与mController建立关联
mVideo.setMediaController(mController); // ②
// 设置mController与videoView建立关联
mController.setMediaPlayer(mVideo); // ③
// 让VideoView获取焦点
// mVideo.requestFocus();
mVideo.setVisibility(View.INVISIBLE);
}else Toast.makeText(MainActivity.this,"The Video is not exist.",Toast.LENGTH_SHORT).show();
mMapView = (MapView) findViewById(R.id.map);
mMapView.setVisibility(View.INVISIBLE);
navController = (NavController) findViewById(R.id.navController);
navController.setVisibility(View.INVISIBLE);
navController.setOnNavAndSpeedListener(new NavController.OnNavAndSpeedListener() {
@Override
public void onNavAndSpeed(float nav, float speed) {
Toast.makeText(MainActivity.this, "nav is " + nav + ",speed is " + speed, Toast.LENGTH_SHORT).show();
}
});
}
private void videoStart()
{
mVideo.setVisibility(View.VISIBLE);
mMapView.setVisibility(View.VISIBLE);
navController.setVisibility(View.VISIBLE);
// mVideo.start();
}
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
VideoView和MapView都可以理解为SurfaceView。
你可以给VideoView设置:setZOrderMediaOverlay(true);试试
参考:
链接1
链接2