android - 如何在 Flash Mobile 中播放压缩的 wave 文件

标签 android actionscript-3 flash wav 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);
            }

我该怎么做才能播放这个文件,之前真的没有播放过压缩文件。

最佳答案

我不熟悉 WAVWriter(这可能有点离题),但这是我所知道的。

首先,由于压缩的性质,您不能(据我所知)播放压缩的音频文件,句号。您需要先将其解压缩。

Google 快速搜索出现了 THIS AS3 TUTORIAL关于使用 FZIP 解压缩。示例程序使用的是 .PNG,但我假设您可以调整它以使用您之前压缩的原始 .WAV 文件。跳到第 5 步以获得实际代码。 (显然,您需要重写它才能使用您的界面。)

您不需要在第 5 步中使用 DataProvider 变量,因为它专门用于组件。您需要将数据加载到其他内容中。如果您播放 WAV 文件的方法和我的一样(我使用 as3WAVSound class ),您可能希望将数据加载到 ByteArray 中并播放它。

您也可能不需要他在第 10 步中使用的 for 循环,因为您的代码似乎正在创建一个只有一个 WAV 文件的 ZIP。这大大简化了事情。

无论如何,我希望这能回答您的问题!

关于android - 如何在 Flash Mobile 中播放压缩的 wave 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20709096/

相关文章:

Android 使用渲染脚本将 ImageReader Image 转换为 YCbCr_420_SP (NV21) 字节数组?

actionscript-3 - 用于 Nape 中船舶和子弹的 sensorGroup 和 sensorMask 组合

apache-flex - fla文件,代码(AS)在哪里

java - 多用户聊天中的 smack 状态监听器

安卓工作室 : release apk signing process

android - 如何在 android Pie 和 UP 中以编程方式打开/关闭扬声器

javascript - 打破 Flash 焦点的最安全方法?

apache-flex - git + Flash Builder 工作流程 : how do I set it up so git works smoothly?

actionscript-3 - AS3 多个 Rollover 对象

flash - Adobe Flash CC 发布到 AS2