【发布时间】:2015-10-31 13:51:25
【问题描述】:
我正在为 mac 上的 safari 制作插件。我被困在如何在可以显示视频的浏览器窗口上创建一个窗口。
之前,我们使用 Cocoa 事件模型,在该模型下,NPP_SetWindow 函数中的 NPWindow 接收到的窗口指针为空。然后我们切换到 Carbon Event 模型,我们通过 NPWindow 结构中存在的窗口指针获得指向 NP_CGContext 的指针,使用它我们获得指向 WindowRef 的指针并获得指向 NSWindow 的指针,如下所示:
NP_CGContext* npContext = (NP_CGContext*)npWindow->window;
WindowRef window = npContext->window;
NSWindow* browserWindow = [[[NSWindow alloc] initWithWindowRef:window] autorelease];
我们的流引擎接受指向NSWindow 的指针。我们不知道如何在浏览器空间中创建一个窗口。
因此,我们将不胜感激有关创建窗口的任何帮助。
【问题讨论】:
-
我无法强烈建议您,您的一系列问题的前提——想要制作一个 NPAPI 插件来流式传输视频——存在严重且根本上的缺陷。 Chrome 已移除 NPAPI 插件支持,Mozilla 已宣布他们将在 2016 年底之前移除支持,虽然 Apple 尚未宣布任何计划,但它们通常并不以扩展支持已弃用技术而闻名。您选择了该项目最不可能继续存在的技术。我强烈建议对视频使用网络标准,或者制作应用程序而不是插件。
标签: nswindow npapi browser-plugin videodisplay