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

标签 java android media-player surfaceview

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

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 直到屏幕状态改变后才出现在屏幕上。我必须关闭屏幕才能将 View 添加到 Activity 中。之后,一切都按预期进行。

有人知道为什么会这样吗?

编辑:从对 Kelvin Trinh 的评论中添加了更多信息。

这是一个使用原生视频组件的AIR Native Extension。 AIR 应用程序充当主要 Activity ,但我无权访问布局或类似内容。 this.activity 是主要 Activity ,取自扩展上下文(AIR 和 Java 应用程序如何通信)。我需要在我的应用程序顶部显示视频,我已经完成了。

最佳答案

您没有提供包装代码的类,但我猜这是您主要 Activity 中的一个 View 。

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

关于java - Android:addContentView() 在屏幕状态改变之前不会出现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12270153/

相关文章:

java - 检查字符串是否为空

java - 关联表的 JPA 映射,其中实体之一具有组合键

java - textArea.setText ("") 不会清除 JTextArea 中的文本

android - 在 android 中流式传输和播放 .m4a 流(Itunes 预览 Url)

Java : If A extends B and B extends Object, 是多重继承

安卓系统属性

android - 当用户不关注该 editText 时显示 EditText 错误

android - 如何使用PRDownloader库下载文件

android - 在 firemonkey 中播放声音

android - 防止媒体播放器同时播放多个声音