0

我有一个基于 Flex 的应用程序,它使用 Flash Media Server (FMS) 服务器(4.0 版)在两个用户之间进行实时视频流传输(即一对一电话会议服务)。根据业务规则的定义,这种流是一对一的,因此没有第三方可以加入电话会议。任何一个人都可以通过基于浏览器的 Flex 客户端启动视频流,一旦第二个用户加入,通信就会建立起来。连接两个用户的流的验证在 FMS 服务器上实现(作为 main.asc 中定义的服务器端脚本)。我的电话会议解决方案面临三个关键问题。

1.很多时候,两个用户之间无法建立完整的通信。一个用户通常看不到或听到另一个用户。有一个客户端“刷新”按钮,单击该按钮时,会尝试通过服务器端脚本建立连接。这有时有效。在实现我们当前的服务器端脚本之前,我尝试使用此处找到的方法建立一个流:http ://forums.adobe.com/thread/905613

我认为下面的方法可能会起作用,因为它会给我一个流的订阅者数组。

getLiveStreamStats(appInst:String, stream:String) : 对象

但问题是服务器返回以下内容:

<level>error</level>
<code>Admin.API.MethodNotAllowed</code>
<description>getlivestreams - Method not allowed!</description>
<timestamp>8/7/2012 10:05:38 AM</timestamp>

问题 - 我需要对客户端做任何不同的事情还是需要修改服务器设置?

4

1 回答 1

2

您没有指定是使用 HTTP 还是 RMTP 进行远程调用。如果您使用的是 RMTP,则无需执行任何操作。如果您使用的是 HTTP,则需要修改以下文件:

  • {Flash/Adobe Media Server Root}\conf\AMS.ini(或 FMS.ini,如果您使用的是旧版本)
  • {Flash/Adobe 媒体服务器根目录}\conf\Users.xml

首先,您需要将 USERS.HTTPCOMMAND_ALLOW 选项设置为 true。在我的 AMS.ini 文件版本中,它位于配置页面的最底部。

在 Users.xml 文件中,您需要找到该块。在我的版本中,它也位于页面底部。Adobe Media Server 5 的默认安装(在我的情况下无论如何)只允许“ping”方法,而所有其他方法都被禁止。您将需要更新该块以反映您希望通过 HTTP 访问的方法的逗号分隔列表(白名单),或者全部允许但不拒绝(我不建议这样做)。

不要依赖通过基于 Web 的管理控制台软重启 Adob​​e/Flash Media Server。这对我不起作用。我需要从 Windows 服务面板中重新启动 AMS 服务,以使配置文件中的更改生效。

我希望这个对你有用!

瑞克

于 2012-11-05T18:07:44.740 回答