Android:addContentView()在屏幕状态更改之前不会出现

时间:2012-09-04 19:33:25

标签: java android media-player surfaceview

我正在根据当前正在运行的活动添加视频。我已设法使用以下方法实现此目的:

this.surface    = new SurfaceView(getApplicationContext());
this.surface.getHolder().addCallback(this);
WindowManager.LayoutParams params = new WindowManager.LayoutParams();
params.height       = 500;
params.width        = 500;
this.activity.addContentView(surface, params);

然后我将MediaPlayer附加到从this.surface获取的SurfaceHolder。它完全按照我的需要工作,除了一件事:在屏幕状态改变之后,SurfaceView不会出现在屏幕上。我必须关闭屏幕才能将视图添加到活动中。在那之后,一切都按预期工作。

任何人都知道为什么会发生这种情况?

编辑:在评论中添加了更多关于Kelvin Trinh的信息。

使用本机视频组件的AIR Native Extension。 AIR应用程序充当主要活动,但我无法访问布局或类似的内容。 this.activity是主要活动,取自扩展上下文(AIR和Java应用程序如何通信)。我需要在我的应用程序之上显示视频,我已经完成了。

1 个答案:

答案 0 :(得分:1)

您没有提供包装代码的类,但我想这是您主要活动中的一个视图。

this.activity.addContentView(surface, params);表示您在特定视图中为活动添加了表面视图。这只会将您的表面引用添加到活动的视图层次结构中,只有在活动重新加载(重新创建,重新启动或恢复)时才会更新。