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

基于Flash的录音机/播放器应用程序对象如何在网页中与JavaScript通信?,javascript,flash,audio,dom-events,Javascript,Flash,Audio,Dom Events,我需要与Flash开发人员沟通,以构建一个能够从浏览器录制音频的Flash记录器。除了闪光灯需要做的所有事情外,它还需要能够: 如果用户拒绝访问其麦克风或无法访问其麦克风,则会触发一个基于JavaScript的模式窗口,弹出一条消息,让用户知道他们可以在不访问其麦克风的情况下继续访问 如果用户录制声音并通过按停止按钮完成录制,则隐藏的html输入字段将以秒为单位填充录制长度 那么,最好的方法是什么呢?我不知道如何在规范中与Flash开发者最好地沟通 我是否定义了当上述两个事件发生时播放器需要

我需要与Flash开发人员沟通,以构建一个能够从浏览器录制音频的Flash记录器。除了闪光灯需要做的所有事情外,它还需要能够:

  • 如果用户拒绝访问其麦克风或无法访问其麦克风,则会触发一个基于JavaScript的模式窗口,弹出一条消息,让用户知道他们可以在不访问其麦克风的情况下继续访问

  • 如果用户录制声音并通过按停止按钮完成录制,则隐藏的html输入字段将以秒为单位填充录制长度

那么,最好的方法是什么呢?我不知道如何在规范中与Flash开发者最好地沟通

我是否定义了当上述两个事件发生时播放器需要触发的JavaScript自定义事件

顺便说一下,我非常喜欢使用jQuery

用于在actionscript和javascript之间建立通信/回调

我建议使用SWFObject,因为它还处理可能中断某些浏览器通信的id和名称问题

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和名称是如何相同的。查看

谢谢。我会看看这个。不用担心。您的flash开发人员应该熟悉……如果他/她不熟悉,很容易找到。确保跨浏览器的通信正常工作通常是一个问题,但这就是swfobject的作用:)