flash-cs4 - 如何编辑通过 fileReference.browse() 方法加载到 flash 的 mp3 文件?

标签 flash-cs4 flash

我想知道如何使用通过 fileReference.browse() 方法加载到闪存的 mp3 ?

目前我已经创建了一个 lash 应用程序,它可以将 mp3 文件从本地硬盘驱动器加载到闪存,并提供一个选项来保存加载回硬盘驱动器的 mp3 文件。 但我找不到使用已加载的 mp3 的方法。 我听说 Aviary 中将提供基于 Flash 的编辑器。(http://aviary.com/blog/posts/aviary-acquires-digimix), 所以有一种方法可以在 flash 中使用 mp3,但是如何操作呢?

这是我的代码:

import flash.net.FileReference;      
import flash.net.FileFilter;
import flash.utils.ByteArray;
import flash.display.MovieClip;
import flash.net.*;
import flash.events.*;
import flash.media.Sound;
import flash.media.SoundChannel;



var fileReference:FileReference;
var myChannel:SoundChannel;
var mySound:Sound;
var mySprite:Sprite;
var mySprite2:Sprite;

mySound=new Sound();
myChannel=new SoundChannel();


load_btn.addEventListener (MouseEvent.CLICK, onLoadClick);
unload_btn.addEventListener (MouseEvent.CLICK, onUnloadClick);

function onLoadClick ( event:MouseEvent):void

{
    fileReference=new FileReference();
    var allTypeFilter:FileFilter = new FileFilter("mp3: (*.mp3)","*.mp3");
    fileReference.browse([allTypeFilter]);
    fileReference.addEventListener(Event.SELECT, selectHandler);

}

function selectHandler(event:Event):void
        {
            fileReference.removeEventListener(Event.SELECT, selectHandler);
            fileReference.addEventListener(Event.COMPLETE, loadCompleteHandler);
            fileReference.load();
        }

function loadCompleteHandler(event:Event):void
        {
            fileReference.removeEventListener(Event.COMPLETE, loadCompleteHandler);

            var loader:Loader = new Loader();
            //loader.contentLoaderInfo.addEventListener(Event.COMPLETE, startPlay);
            loader.loadBytes(fileReference.data);
        }

function onUnloadClick (event:MouseEvent)

{
    trace(fileReference.data);
    fileReference.save(fileReference.data, "done.mp3");

}

提前致谢。

最佳答案

事情出奇地复杂。由于某些原因,没有任何 API 可以从 FileReference 或 ByteArray 创建声音对象,因此您必须解析(而不是解码)MP3 并创建可通过 flash.display.Loader.loadBytes 加载的 SWF .

查看blog post有关详细信息和执行此操作的库。加载 Sound 对象后,您可以使用 extract() 方法来获取可在编辑器中使用的 PCM 音频数据。

要从编辑后的PCM生成MP3,看起来有一些Flash mp3 encoders ,但我没用过。

关于flash-cs4 - 如何编辑通过 fileReference.browse() 方法加载到 flash 的 mp3 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5178983/

相关文章:

flash - 检查一个类是否有方法

android - 闪光空气中的相机

java - 使用 StuartMacKay 的 transform-swf 库从 swf 读取文本

javascript - 使用 jQuery 更新 flashvars 并重新加载 flash

actionscript-3 - Flash Player 10.1 的全局错误处理程序不起作用

actionscript-3 - 是否可以使用 as3 播放 .m4a 文件?

flash - 在闪存中具有多个输出的像素弯曲器着色器?

actionscript-3 - Flash AS3 加载最佳实践

javascript - 闪存 CS4 错误 1084 : Expecting Identifier before Var

linux - 无法使用 Flash Media Live Encoder 连接到 Linux VPS CentOS 服务器上的 Flash Media 服务器