4

我的 flex 3.5 应用程序有一个音频播放器,可以通过调用 AMF 服务来访问其内容以获取 mp3 数据。据我所知,flash.media.Sound它是用 a 初始化的URLRequest,所以我不清楚如何使用 my 为它提供数据RemoteObject

我想做以下事情之一:

  1. 通过服务调用向Sound对象的load方法提供数据。RemoteObject
  2. 创建一个URLRequest将执行必要的 AMF 包装的对象,以便我的服务实现看起来与任何其他服务调用完全一样(如果可能)。
  3. 任何允许我调用 PHP4 AMF 服务并播放它在 Flash 音频播放器中返回的音频的替代方法。
4

3 回答 3

3

如果您绝对必须使用 AMF 来提供声音,那么您有 2 个选择。第一种是将 MP3 包装在 swf 中,将其作为 ByteArray 发送回来,然后使用 Loader 上的 loadBytes 方法将其加载回。第二种选择是将其转换为 wav,将其作为 ByteArray 发送,然后解析音频文件并使用 sampleData 事件将数据提供给声音(仅限 Flash Player 10)。我可能会推荐第一个选项,因为它比第二个更容易和更快,但两者都不是特别容易。

如果我必须通过 AMF 进行身份验证才能加载声音,我将返回某种类型的会话 cookie 并设置一个简单的 PHP 服务,该服务将使用适当的会话 cookie 为 MP3 提供服务。

于 2010-07-27T02:56:48.703 回答
1

您需要从此处完成的 ByteArray 加载声音:

http://www.flexiblefactory.co.uk/flexible/?p=46

于 2010-08-06T17:40:11.357 回答
0

为什么不使用带有 URL 参数的Sound对象?

无需编写代码来手动检索您的 URL。如果您希望在返回文件之前进行一些后端处理,您可以设置返回 mimetype 并将 mp3 文件的数据字节“转储”到输出流中。

使用 ColdFusion,使用 cfcontent 标记很容易。我假设 PHP 提供了一些并行,但我不知道它是什么。

于 2010-07-06T22:50:19.063 回答