我的layout.xml由一个带有几个TextViews和按钮的FrameLayout组成,我像使用MediaController一样使用它,它还包含一个SurfaceView。在代码中,我创建了一个MediaPlayer,并将SurfaceView的SurfaceHolder设置为如下所示:
surfaceView = (SurfaceView) findViewById(R.id.video_surfaceview);
surfaceHolder = surfaceView.getHolder();
surfaceHolder.addCallback(this);
mediaPlayer.setDisplay(surfaceHolder);这对于显示视频非常有效,但当我尝试调用:
overLayTextView.setVisibility(View.Gone);overLayTextView仍然可见。我尝试检索overLayTextView的视图状态,但它被设置为Gone。我认为SurfaceView不会更新它的绘制状态,直到它感觉到(通常发生在20+秒之后)。所以我的问题是,是否有什么我可以在SurfaceView或SurfaceHolder上调用来通知他们应该“重画”他们的一些内容?(显然不是视频)。
发布于 2012-06-12 18:19:00
我刚刚意识到这个线程仍然使用视频信息更新覆盖图,称为:
overLayTextView.setText(mediaPlayer.getDuration());在“无表面”布局中,这并不重要,因为视图是隐藏的,但在SurfaceView中显然不是这样(至少在某些设备上,奇怪的是)。
希望这能帮上忙,干杯。
https://stackoverflow.com/questions/10970188
复制相似问题