2

我正在在当前正在运行的活动之上添加视频。我已经设法使用以下方法实现了这一点:

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 应用程序如何通信)。我需要视频显示在我的应用程序之上,我已经完成了。

4

1 回答 1

1

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

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

于 2012-09-05T02:20:42.563 回答