基于Flash的录音机/播放器应用程序对象如何与网页中的JavaScript进行通信?

How would a Flash based sound recorder/player application object communicate with JavaScript within a web page?

本文关键字:JavaScript 网页 通信 录音机 Flash 播放器 应用程序 基于 对象      更新时间:2023-09-26

我需要与Flash开发人员进行通信,以构建可以从浏览器记录音频的Flash记录器。除了Flash记录器需要做的所有事情之外它还需要能够:

  • 如果用户拒绝访问他们的麦克风或者他们的麦克风不能被访问触发一个基于JavaScript的模态窗口弹出一个消息,让用户知道他们可以在没有访问麦克风的情况下继续前进

  • 在用户录制声音的事件中,他们通过按停止按钮完成录制,隐藏的html输入字段将以秒为单位填充录制的长度。

那么最好的方法是什么呢?我不确定如何在规范中最好地与Flash开发人员沟通。

我是否需要定义JavaScript自定义事件,当上述两个事件中的任何一个发生时,玩家需要触发这些事件?

顺便说一下,我非常偏爱使用jQuery。

使用ExternalInterface在actionscript和javascript之间建立通信/回调。

我推荐使用SWFObject,因为它还处理和id/name问题,可能会破坏某些浏览器的通信。

var flashvars = {};
var params = {};
var attributes = { id: "ExternalInterfaceExample", name: "ExternalInterfaceExample" };
swfobject.embedSWF("ExternalInterfaceExample.swf", "flashcontent", "550", "200", "8", "/path/to/expressinstall.swf", flashvars, params, attributes);
function sendToFlash(text) {
  var swf = document.getElementById("ExternalInterfaceExample");
  swf.sendTextToFlash(text);
}

示例来自链接站点,注意id和名称是如何相同的。查看演示