【问题标题】:Mix multiple sounds in flash在 Flash 中混合多种声音
【发布时间】:2009-08-10 11:35:06
【问题描述】:

我在 flash 中有几个声音对象,我想在这些声音文件中混合不同的点来创建一个单一的杰作并将其保存为 mp3。 我已经在网上看到了各种“混音器”应用程序,并且想知道要查看哪些区域才能自己执行此操作。

【问题讨论】:

  • 好吧,它是首选,因为应用程序的某些部分是在 as2 中构建的,但是如果我想做的事情不能在 as2 中完成,那么我将不得不说服我的其他人团队走as3的路。如果有的话……
  • AS3 中的声音 API 是 AS2 的一个巨大飞跃。建议您进行跳跃。

标签: flash audio actionscript-2 mixing


【解决方案1】:

要创建音乐或您要创建的任何内容,您必须将 wav 和 mp3 文件导入到您的库中,然后将它们拖到电影区域以将它们添加到您的时间线中。使用多个图层来帮助组织它们。要测试您的歌曲,您可以按 Enter 从您前进到结束的任何帧运行。

如果您在时间线中选择了声音,请不要忘记您可以应用一些效果。此外,“属性”面板上有一个“编辑”按钮(默认位于底部),您可以使用它来将音频剪辑修剪为您需要的任何内容。

完成后,您必须将 Flash 电影发布到 swf。然后你必须使用像这样的 Swf 到 Mp3 转换器:

http://3d2f.com/programs/25-187-swf-to-mp3-converter-download.shtml

(我不担保这个软件,这只是一个例子)

如果您尝试使用 ActionScript 2.0 从代码中完成所有这些工作,那么您的前路将很艰难。

本质上,您必须构建一个数组,其中包含已加载到电影中的修剪后的声音字节。然后在 onEnterFrame 中,您必须在适当的时间调用它们:

(这段代码我完全没有测试,只是给你一个基本的思路,lol)

var sounds = new Array();
var s0 = new Sound(this);
s0.attachSound("someLinkedSound0");
sounds.push({sound : s0, frame : 100});
var s1 = new Sound(this);
s1.attachSound("someLinkedSound1");
sounds.push({sound : s1, frame : 200});
var s2 = new Sound(this);
s2.attachSound("someLinkedSound2");
sounds.push({sound : s2, frame : 300});
var currentSound = 0;

this.onEnterFrame = function(e) {
    if(currentSound < sounds.length && sounds[currentSound].frame == _root.currentFrame) {
        sounds[currentSound].start(0,1);
        currentSound++;
    }
    frame++;
}

我的示例使用导入到您的库并“链接”的声音,但您可以通过 url 加载声音,稍作修改。

如果由于应用程序的结构而未调用 onEnterFrame,您也可以使用从 setInterval 调用的方法来完成类似的操作。 我希望这会有所帮助。

【讨论】:

    【解决方案2】:

    要在 ActionScript 2 中混合声音,请查看 this link。详细解释了如何使用 AS2 实现混音。接下来,您需要查看this link 以获取有关该主题的更多信息。

    无法直接从 AS2 将混合版本的声音保存为 MP3。您必须求助于一些精心制作的服务器端脚本,该脚本知道混合声音何时开始和停止,并且使用该信息可以在服务器上生成 MP3。棘手,但并非不可能。

    或者您可以切换到 AS3,在那里您可以create sound at runtime(例如,一直向下滚动)并将结果保存为字节流。

    【讨论】:

      【解决方案3】:

      阅读一些关于 flash SoundChannelSoundSoundTransform 类的内容。您所要做的就是加载不同的声音(您在我链接的 Flash 文档中有如何做到这一点的示例),并根据您的时间线播放声音。每种声音都可以在不同的通道上播放,这样您就可以“混合”它们。维护一系列频道,并在您需要的任何时间对它们做任何您想做的事情。

      保存它们需要做更多的工作,但并非不可能。 Here 您可以找到另一个将 mp3 保存到 swf 的示例。其他方法我不能说我知道,但从我所见,您可以使用 Alchemy 并将 LAME MP3 Encoder 编译为 flash 库。您还需要一些后端,因为您无法使用闪存下载文件。您必须将它们发送到服务器,然后服务器应该初始化下载。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-08-03
        • 2010-09-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多