Android MediaController拦截所有其他的触摸事件

我的应用程序的上半部分有一个带有MediaControllerVideoView 。 下半部分是一些button的图像。 MediaController可见时,下面的button不可点击。 就像MediaController是可见的,它拦截所有其他的触摸事件,即使它们不在MediaController的范围内。

任何想法呢?

Solutions Collecting From Web of "Android MediaController拦截所有其他的触摸事件"

你可以检查我的答案覆盖dispatchTouchEvent()传递点击通过MediaController到一个底层的Button ,但我猜你的方式使用MediaController有问题。 你可以发布你的布局?

UPD:其实,罢工。 我刚看了一下MediaController代码,结果发现它为自己创build了一个新Window 。 这就是为什么你的点击没有得到调度 – 他们被派往另一个窗口。 此外,据我可以从构造函数代码告诉,如果你通过XML膨胀MediaController(即使用它在一个布局文件,然后只是从你的代码中find它) – 它不会创build额外的Window 。 这很奇怪,但我相信他们有这个理由。

所以,解决方法是尝试在布局文件中使用MediaController,或者使用CommonsWare的解决scheme 。 请让我知道如果你给xml的东西一试。

任何想法呢?

不要使用MediaController 。 创build您自己的控制器UI,并根据需要popup并显示。 虽然这个示例项目可能不再完全工作,因为我已经三年没碰过了,但是它展示了你自己的控制器面板一触即发,然后消失。

你能提供你的VideoView实例代码和你用来切换MediaPlayers的代码吗?

在任何情况下,我怀疑这将工作得很好,因为VideoView实例化自己的MediaPlayer并使用它来播放媒体。 (请参阅VideoView.java )

您可能需要切换出VideoView本身,或者使用自己的SurfaceView子类构buildVideoView的替代品。

我面临同样的问题,我的UI元素块,由于媒体播放器,花了5个小时后,我得到的解决scheme

我只是将mediaPlayer.prepare()replace为mediaPlayer.prepareAsync();