gpt4 book ai didi

javascript - 您可以在 Flash 实例之间传递 Camera 和 Microphone 对象吗?

转载 作者:行者123 更新时间:2023-11-30 05:52:11 26 4
gpt4 key购买 nike

我正在开发一个 HTML5 应用程序,它需要与 Flash 交互才能访问本地媒体(例如网络摄像头和麦克风),并在远程浏览器之间传输音频-视频。但是在这个应用程序中,我需要本地网络摄像头显示在屏幕的一部分,由远程网络摄像头显示的各种 HTML 元素隔开。我很确定这意味着我需要让我的 Flash 应用程序运行多个实例。但我认为您一次只能获取网络摄像头的一个实例,这意味着我需要能够在 Flash 实例之间共享这些网络摄像头和麦克风对象:一个显示本地网络摄像头,另一个与 Flash 实例通信并显示远程网络摄像头。有可能这样做吗?例如,我能否通过 ExternalInterface 将 Camera 和 Microphone 实例传递给 JavaScript,然后将它们传递回我的 Flash 对象的单独实例?

换句话说,我正在考虑拥有一个如下所示的 ActionScript 类(当然要简化得多):

public class MediaController
{

public function MediaController()
{
ExternalInterface.addCallback('getUserMedia', this.getUserMedia);
ExternalInterface.addCallback('getCamera', this.getCamera);
ExternalInterface.addCallback('setCamera', this.setCamera);
ExternalInterface.addCallback('getMicrophone', this.getMicrophone);
ExternalInterface.addCallback('setMicrophone', this.setMicrophone);
}

private var _mic:Microphone;
private var _cam:Camera;

public function getUserMedia()
{
_mic = Microphone.getMicrophone();
_cam = Camera.getCamera();
}

public function getCamera():Camera
{
return this._cam;
}

public function setCamera(cam:Camera):void
{
this._cam = cam;
}

public function getMicrophone():Microphone
{
return this._mic;
}

public function setMicrophone(mic:Microphone):void
{
this._mic = mic;
}
}

我会像这样用 JavaScript 检索它们:

var localUser = $('#localUser')[0];
localUser.getUserMedia();
var mic = localUser.getMicrophone();
var cam = localUser.getCamera();

然后像这样将它们传递回实际与远程用户通信的实例:

var remoteUser = $('#remoteUser')[0];
remoteUser.setMicrophone(mic);
remoteUser.setCamera(cam);

这样做有什么已知的缺陷吗?有没有更好的方法来处理这个问题? (在你问之前,是的,在没有其他建议的情况下,我打算把它编码起来,我会让每个人都知道我发现了什么 - 只是想知道在我得到之前是否有任何已知的陷阱或替代方案开始了。:-)

最佳答案

您不能通过ExternalInterfaceCameraMicrophone 等对象传递给Javascript。当您使用 ExternalInterface 与 Javascript 通信时,您传递的任何数据都会被编码为 XML 格式。所以在那一点上,相机/麦克风不再是 Flash CameraMicrophone 对象。

您可能会发现,在某些浏览器/操作系统中尝试同时从两个单独的 SWF 访问同一相机是可行的。然而,在其他情况下它失败了。我在两个完全不相关的网站访问相机时看到了这种行为。

SWF 可以使用 LocalConnection 相互通信类,虽然我从来没有用相机或麦克风尝试过这样的事情。

关于javascript - 您可以在 Flash 实例之间传递 Camera 和 Microphone 对象吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14059780/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com