了解声音体系结构

Flash Player 9 和更高版本,Adobe AIR 1.0 和更高版本

应用程序可以从以下五种主要来源加载声音数据:

  • 在运行时加载的外部声音文件

  • 在应用程序的 SWF 文件中嵌入的声音资源

  • 来自连接到用户系统上的麦克风的声音数据

  • 从 Flash Media Server 等远程媒体服务器流式传输的声音数据

  • 通过使用 sampleData 事件处理函数动态生成的声音数据

可以在播放之前完全加载声音数据,也可以进行流式传输,即在仍进行加载的同时播放这些数据。

ActionScript 3.0 声音类支持以 mp3 格式存储的声音文件。它们不能直接加载或播放其他格式(如 WAV 或 AIFF)的声音文件。但从 Flash Player 9.0.115.0 开始,可使用 NetStream 类加载和播放 AAC 音频文件。这与加载和播放视频内容的方法相同。有关此方法的详细信息,请参阅使用视频

使用 Adobe Flash Professional,可以导入 WAV 或 AIFF 声音文件,然后将其以 mp3 格式嵌入应用程序的 SWF 文件中。Flash 创作工具还可压缩嵌入的声音文件以减小文件大小,但会降低声音的品质。有关详细信息,请参阅《使用 Flash》中的“导入声音”。

ActionScript 3.0 声音体系结构使用 flash.media 包中的以下类。

说明

flash.media.Sound

Sound 类处理声音加载、管理基本声音属性以及启动声音播放。

flash.media.SoundChannel

当应用程序播放 Sound 对象时,将创建一个新的 SoundChannel 对象来控制播放。SoundChannel 对象可控制声音的左和右播放声道的音量。播放的每种声音都具有其自己的 SoundChannel 对象。

flash.media.SoundLoaderContext

SoundLoaderContext 类指定在加载声音时使用的缓冲秒数,以及 Flash Player 或 AIR 在加载文件时是否从服务器中查找策略文件。SoundLoaderContext 对象用作 Sound.load() 方法的参数。

flash.media.SoundMixer

SoundMixer 类可控制与应用程序中的所有声音有关的播放和安全属性。实际上,可通过一个通用 SoundMixer 对象将多个声道混合在一起,因此,该 SoundMixer 对象中的属性值将影响当前播放的所有 SoundChannel 对象。

flash.media.SoundTransform

SoundTransform 类包含控制音量和声相的值。可以将 SoundTransform 对象应用于单个 SoundChannel 对象、全局 SoundMixer 对象或 Microphone 对象等。

flash.media.ID3Info

ID3Info 对象包含一些属性,它们表示通常存储在 mp3 声音文件中的 ID3 元数据信息。

flash.media.Microphone

Microphone 类表示连接到用户计算机上的麦克风或其他声音输入设备。可以将来自麦克风的音频输入传送到本地扬声器或发送到远程服务器。Microphone 对象控制其自己的声音流的增益、采样率以及其他特性。

加载和播放的每种声音需要其自己的 Sound 类和 SoundChannel 类的实例。然后,全局 SoundMixer 类在播放期间将来自多个 SoundChannel 实例的输出混合在一起。

Sound、SoundChannel 和 SoundMixer 类不能用于从麦克风或流媒体服务器(如 Flash Media Server)中获取的声音数据。