yam*_*ams 5 flash android wav actionscript-3 flex-mobile
我正在使用ActionScript在Flash Mobile中开发一个项目.我有一个压缩的wav文件,我需要能够在Button Press动作中根据需要进行序列化和播放.下面是压缩wav文件的代码.
mic.removeEventListener(SampleDataEvent.SAMPLE_DATA, micSampleDataHandler);
btnRecord.setStyle("icon", recOff);
sampleCount++;
// save the raw PCM samples as a bare WAV file
var wav:ByteArray = new ByteArray();
var writer:WAVWriter = new WAVWriter();
writer.numOfChannels = 1;
writer.sampleBitRate = 16;
writer.samplingRate = 11025;
samples.position = 0;
writer.processSamples(wav, samples, 11025, 1);
wav.position = 0;
// zip the WAV file
var fzip:FZip = new FZip();
fzip.addFile(name + sampleCount.toString(), wav);
var zip:ByteArray = new ByteArray();
fzip.serialize(zip);
var recSpot:Object = {
id: null,
audio: zip,
name: "New Audio File " + newRecNum,
existsdb: "false"
};
newRecNum++;
recordings.addItem(recSpot);
}
Run Code Online (Sandbox Code Playgroud)
我该怎么做才能播放这个文件,以前真的不必播放压缩文件.
我不熟悉 WAVWriter(这可能有点离题),但这是我所知道的。
首先,由于压缩的性质,您无法(据我所知)播放压缩的音频文件。您需要先解压缩它。
通过 Google 快速搜索,找到了有关使用 FZIP 解压缩的AS3 教程。示例程序使用 .PNG,但我假设您可以调整它以使用之前压缩的原始 .WAV 文件。跳至步骤 5 查看实际代码。(显然,您需要重写它才能与您的界面一起使用。)
您在步骤 5 中不需要 DataProvider 变量,因为它专门用于组件。您需要将数据加载到其他东西中。如果您播放 WAV 文件的方法与我的类似(我使用as3WAVSound 类),您可能希望将数据加载到 ByteArray 中并从中播放。
您可能也不需要他在步骤 10 中使用的 for 循环,因为您的代码似乎是在创建一个仅包含一个 WAV 文件的 ZIP。这大大简化了事情。
不管怎样,我希望能回答你的问题!
| 归档时间: |
|
| 查看次数: |
226 次 |
| 最近记录: |