我正在根据当前正在运行的活动添加视频。我已设法使用以下方法实现此目的:
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应用程序如何通信)。我需要在我的应用程序之上显示视频,我已经完成了。
答案 0 :(得分:1)
您没有提供包装代码的类,但我想这是您主要活动中的一个视图。
this.activity.addContentView(surface, params);
表示您在特定视图中为活动添加了表面视图。这只会将您的表面引用添加到活动的视图层次结构中,只有在活动重新加载(重新创建,重新启动或恢复)时才会更新。