Как редактировать mp3 файл, который был загружен на флэш-память с помощью метода fileReference.browse ()? - PullRequest
3 голосов
/ 03 марта 2011

Интересно, как мне работать с mp3, который был загружен на флэш-память с помощью метода fileReference.browse ()?

В настоящее время я создал приложение lash, которое может загружать mp3-файлы с локального жесткого диска на флэш-память.и предоставить возможность сохранить mp3-файл, который был загружен обратно на жесткий диск.Но я не могу найти способ работать с загруженным mp3.Я слышал о Flash-редакторе, который будет доступен в Aviary. (http://aviary.com/blog/posts/aviary-acquires-digimix),, поэтому есть способ работать с 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");

}

Заранее спасибо.

1 Ответ

0 голосов
/ 16 мая 2011

Это странно сложно.По какой-то причине нет никакого API для создания звукового объекта из FileReference или ByteArray, поэтому вам нужно проанализировать (не декодировать) MP3 и создать SWF-файл, который можно загрузить через flash.display.Loader.loadBytes..

Проверьте сообщение в блоге для получения подробной информации и библиотеки для этого.После того, как вы загрузили объект Sound, вы можете использовать метод extract () для получения аудиоданных PCM, которые вы можете использовать в вашем редакторе.

Чтобы сгенерировать MP3 из отредактированного PCM, он выглядит следующим образомнекоторые кодировщики Flash mp3 , но я не использовал их.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...