我在Adobe AIR中有这个测试应用程序,使用Android ANE插入VideoView来观看视频。问题是,一旦添加了视频,屏幕的其余部分就无法点击。
以下是用于插入VideoView的代码:
// File: VideoPlayerTestActivity.java
protected void onCreate(Bundle savedInstance)
{
super.onCreate(savedInstance); // always call this
VideoView videoHolder = new VideoHolder(this);
this.programaticallyAddToLayout(videoHolder);
// Add the media controllers at bottom of video, instead of screen bottom
videoHolder.setOnPreparedListener(new OnPreparedListener() {
public void onPrepared(MediaPlayer mp) {
mp.setOnVideoSizeChangedListener(new OnVideoSizeChangedListener() {
public void onVideoSizeChanged(MediaPlayer mp, int width, int height) {
MediaController mc = new MediaController(VideoPlayerTestActivity.this);
videoHolder.setMediaController(mc);
mc.setAnchorView(videoHolder);
}
});
}
});
videoHolder.setMediaController(new MediaController(this));
videoHolder.setVideoURI( Uri.parse(mediaURL) );
videoHolder.requestFocus();
videoHolder.start();
}
这是方法programaticallyAddToLayout()的代码,它创建应该在XML中的布局。 (我没有使用xml布局文件,由于某些原因仍然无法解决,the app cannot find the xml file):
private void programaticallyAddToLayout( VideoView videoView )
{
FrameLayout layout = new FrameLayout(this);
FrameLayout.LayoutParams layoutParams = new FrameLayout.LayoutParams(800, 600);
layoutParams.gravity = Gravity.CENTER;
layout.setId(1);
layout.setLayoutParams(layoutParams);
videoView.setId(2);
layout.addView( videoView, layoutParams );
this.setContentView( layout );
}
以下是该应用的屏幕抓图,供参考:
答案 0 :(得分:0)
将背景放在说红色的视频视图上进行测试。视频或布局可能会覆盖您的按钮,如果clickable = true,则事件不会传播到该位置并按下按钮。
答案 1 :(得分:0)
有关如何解决此问题的一些事情。首先,为什么要在requestFocus()
上拨打VideoView
?这可能会产生不利影响。
如果这会将您的VideoView
置于其他观看之后,您可以将其移至前面,如下所示:
videoview.setZOrderMediaOverlay(false);
答案 2 :(得分:0)
我在Android 2.1和2.2中遇到过这个问题,但是当我移植到2.3
时却没有