1

我在 Adob​​e 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();
}

这里是程序化 AddToLayout() 方法的代码,它创建了应该在 XML 中的布局。(我没有使用 xml 布局文件,出于某种我仍然无法理解的原因,应用程序找不到 xml 文件):

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 );
}

这是应用程序的屏幕截图,供参考:

抓屏

4

3 回答 3

0

我在 Android 2.1 和 2.2 中遇到了这个问题,但在我移植到 2.3 时没有

于 2012-11-15T16:24:27.787 回答
0

关于如何解决这个问题,我想到了几件事。首先,你为什么requestFocus()打电话VideoView?这可能会产生不利影响。

如果这使您VideoView落后于其他视图,您可以将其移至前面,如下所示:

videoview.setZOrderMediaOverlay(false);
于 2012-11-14T21:30:00.610 回答
0

在 say red 的视频视图上放置背景以进行测试。视频或布局可能会覆盖您的按钮,如果 clickable=true 则事件不会传播到该布局并点击按钮。

于 2012-11-08T18:45:25.310 回答