java - 在 Applet 中加载 ActiveX 对象

标签 java activex applet cross-browser

我有一个网络应用程序可以处理从专用麦克风接收到的事件和音频。音频由在网页中运行的 Java 小程序处理,但其他事件(麦克风连接、麦克风断开、麦克风按钮按下)由 ActiveX 对象处理。

ActiveX 对象捕获这些事件并调用 JavaScript 代码来处理它们

<!-- Load the ActiveX control -->
<object id="PhilipsSpeechMikeCtrl" width="0" height="0" tabindex="-1"
    classid="CLSID:AAA44754-CC81-4692-91AF-7064E58EB22A"
    standby="Loading Philips SpeechMike component..."
    type="application/x-oleobject">
</object>

<script type="text/javascript">
    // This is Microsofts javascript way of trapping ActiveX object events.

    function PhilipsSpeechMikeCtrl::SPMEventDeviceConnected(deviceID) {
        // Call JavaScript code to handle the microphone connected event
    }

    function PhilipsSpeechMikeCtrl::SPMEventDeviceDisconnected(deviceID) {
        // Call JavaScript code to handle the microphone disconnected event
    }

    function PhilipsSpeechMikeCtrl::SPMEventButton(deviceID, eventId) {
        // Call JavaScript code to handle the microphone button pressed event
    }
</script>

当然,这种方法的一个问题是它完全依赖于 IE。我更喜欢在 applet 中加载 ActiveX 对象,在那里捕获事件并在 applet 或从 applet 调用的 JavaScript 代码中处理事件。这应该能让我在任何支持小程序的浏览器中运行该应用程序。

我不完全确定如何着手实现我上面提出的解决方案,有什么建议吗?

更新:我意识到我上面提出的解决方案仍然依赖于 IE,这很好。我的近期目标是支持 Windows 上的所有浏览器。

有人建议我可以使用 JNI(或 JNA)来访问 ActiveX 对象下的 DLL,而不是使用 ActiveX。但是,我实际上并不想调用 DLL 中的函数,我希望 DLL 调用我,即注册一个事件处理程序。

谢谢, 唐

最佳答案

除 IE 之外,其他浏览器不支持 ActiveX,因此您的应用程序无法支持所有浏览器,即使仅在 Windows 上也是如此。 尝试(插件)将 ActiveX 移植到 Firefox 1 下,但据我所知并没有真正有用,目前还没有针对您的问题的“模拟”解决方案。 对不起... (有关 Mozilla 的评论,请参阅 here)

关于java - 在 Applet 中加载 ActiveX 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/752352/

相关文章:

java - TestNG:并行线程运行类安全吗?

JavaFX如何将文本写入textArea中的新行?

applet - `Signature.init()` 是否重写持久内存?

java - 如何将图像从 Java Applet 发送到 JavaScript?

java - 为什么Java和Applet中需要JNLP文件?

java - 无法将 libGDX 项目导入 Eclipse。

java - Maven3 : when groupId is renamed, 会导致任何冲突或错误

matlab - 通过 ActiveX(使用 Matlab)设置 Labview VI 的数组控件的值

javascript - 使用 Javascript 检测主要插件(Java、Active-X、Flash)的存在

javascript - 从 Javascript 读取一个 txt 文件