2013-05-30 4 views
1

В моем проекте с использованием flash cs6, as3 Мне удалось кодировать bytearray из микрофона с использованием класса waveEncoder и загрузить его на серверной стороне Он работает на сервере, но когда я его загружаю и пытаюсь воспроизвести внутри вспышки, это не играет мне нужна помощь, чтобы закодировать mp3 файл, это работа, когда я пытаюсь играть в флэш вот мой кодencode Bytearray to mp3 using as3

import org.bytearray.micrecorder.encoder.WaveEncoder; 
var enco:WaveEncoder=new WaveEncoder(); 
function upload_s(user_name:String,user_id:String) 
{ 
var SERVICE_PATH:String = "http://myserver.php"; 
    var o:ByteArray=enco.encode(soundO3,1) 

var soundFileName=user_name+user_id+".mp3" 
var loaderjp:URLLoader = new URLLoader(); 

var url:String = SERVICE_PATH + "?name=" + soundFileName; 

var req:URLRequest = new URLRequest(url); 

// make sure the server knows it is getting an image 
req.requestHeaders = new Array(new URLRequestHeader("Content-Type", "audio/mp3")); 

loaderjp.dataFormat = URLLoaderDataFormat.BINARY; 

req.contentType ="audio/mp3"; 

req.method = URLRequestMethod.POST; 

req.data = o; 

// send the file    
loaderjp.load(req); 

} 

Thank в

+0

Вы в состоянии загрузить сохраненную MP3 с сервера через браузер, а затем играть это через посредство программного обеспечения? – Vesper

+0

да, я загружаю его и воспроизвожу его с помощью медиаплеера. Спасибо за ваш ответ :) –

ответ

5
**My Solution:** 

загрузить shinemp3Encoder по этой ссылке https://github.com/kikko/Shine-MP3-Encoder-on-AS3-Alchemy затем следующий код работы отлично :)

import org.bytearray.micrecorder.encoder.WaveEncoder; 
import fr.kikko.lab.ShineMP3Encoder; 
var enco:WaveEncoder=new WaveEncoder(); 

    var loaderjp:URLLoader = new URLLoader(); 

    var req:URLRequest 
    function upload_s(user_name:String,user_id:String) 
    { 
    var SERVICE_PATH:String = "http://server/saveme.php"; 
     var o:ByteArray=enco.encode(soundO3,1) // soundO3 is Byte Array created from mic 
     var mp3Encoder 

    var imageFileName=user_name+user_id+".mp3" 

    var url:String = SERVICE_PATH + "?name=" + imageFileName; 

    req = new URLRequest(url); 

    // make sure the server knows it is getting an image 
    req.requestHeaders = new Array(new URLRequestHeader("Content-Type", "audio/mp3")); 

    loaderjp.dataFormat = URLLoaderDataFormat.BINARY; 

    req.contentType ="audio/mp3"; 

    req.method = URLRequestMethod.POST; 
    encodeToMP3(o) 

    function encodeToMP3(wavData:ByteArray):void { 

      mp3Encoder = new ShineMP3Encoder(wavData); 
      trace("jjjjjjjjjjjkk "+mp3Encoder) 
      mp3Encoder.addEventListener(Event.COMPLETE, mp3EncodeComplete); 
      mp3Encoder.addEventListener(ProgressEvent.PROGRESS, mp3EncodeProgress); 
      mp3Encoder.addEventListener(ErrorEvent.ERROR, mp3EncodeError); 
      mp3Encoder.start(); 
    } 

    function mp3EncodeProgress2(event : ProgressEvent) : void { 

      trace(event.bytesLoaded, event.bytesTotal); 
    } 
    function mp3EncodeError(event : ErrorEvent) : void { 

      trace("Error : ", event.text); 
    } 
    var arr:ByteArray=new ByteArray() 

    function mp3EncodeComplete(event : Event) : void { 

      trace("Done !", mp3Encoder.mp3Data.length); 

    //  trace(mp3Encoder.mp3Data) 

    req.data = mp3Encoder.mp3Data 
    loaderjp.load(req); 
    } 

    // send the file    

    } 

thaaank все в

0

waveEncoder для WAV-файлов, не mp3-s. Mp3-файлы требуют аппаратного ускорения, иначе они очень тяжелые. однако есть лики, как в этом видео http://gotoandlearn.com/play.php?id=169, что может сделать это для вас.

+0

Даже файл Wav не работает :( –

+0

, но при конвертировании mp3-файла с использованием формата фабричного или мультимедийного кодировщика формата это хорошо работает –

+0

, и я могу сделать mp3 файл из waveEncoder, то file.mp3 работает на сервере и с помощью медиаплеера –

0

Это не должно быть проблемой, если этот файл действительно является допустимым звуком. Используйте this manual для загрузки звуков из URL-адресов.

+0

я использую следующий способ играть, нормальный mp3 работает нормально, но когда я использую его для файла, который я создаю не работает var mp3fi: Файл mp3fi = File.documentsDirectory var mp3out = mp3fi.resolvePath (nam + ". mp3"). nativePath \t var url: URLRequest = new URLRequest (mp3out) sourceSnd.load (url); sourceSnd.play –

+0

Нет, поскольку вы загрузили этот MP3 в другом месте, вам необходимо загрузить этот звук с сервера. Или у вас возникают трудности с воспроизведением звука, который вы только что записали? – Vesper

+0

var req: URLRequest = новый URLRequest ("http: /path/test4.mp3"); var s: Звук = новый Звук (req); s.play() также не работает –