Wie das Abspielen von MP3-sound-buffer (ByteArray/Stream) in ActionScript 3?
Also.. ich habe eine Puffer mit MP3-Daten (Wenn ich sparen würde dieser Puffer und es nennen-Puffer.mp3 er spielen würde, aber in dieser situation sollte ich nicht speichern Sie es auf Datei-system). Ich habe es zu spielen, aber ich kann nicht, was soll ich tun?
Habe ich versucht, den nächsten code zu spielen, buffrer(ByteArray\Stream) (bekomme ich MP3-Daten vom server die Methode zum abrufen der Daten funktioniert gut (getestet auf text-int etc) ich nenne das zurückgegebene ByteArray readResponse, weil ich einige seading Methode und It ist die Antwort).
protected function Play(event:MouseEvent):void
{
var mySound:Sound = new Sound();
mySound.addEventListener(SampleDataEvent.SAMPLE_DATA, soundFill);
mySound.play();
}
public function soundFill(event:SampleDataEvent):void
{
event.data.writeBytes(readResponse.buffer, 0, readResponse.buffer.length);
}
Dieser thread könnte hilfreich sein, stackoverflow.com/questions/1553563/...
InformationsquelleAutor Rella | 2009-10-25
Du musst angemeldet sein, um einen Kommentar abzugeben.
Diese nicht funktionieren, da SampleDataEvent.data rechnet im unkomprimierten raw-sample-Daten, nicht mit MP3. Verwenden http://wiki.github.com/claus/as3swf/play-mp3-directly-from-bytearray statt.
InformationsquelleAutor Vancura
Ich glaube nicht, dass es eine Lösung gibt, um mp3-Binär-Daten, aber wenn es eine wav -, dann sollte dies funktionieren:
Denken Sie daran, zu entfernen wav-header vor der Probenahme Daten obwohl. Auch, es funktioniert nur gut, wenn die sample-rate beträgt 44,1 kHz. Bei anderen sample-raten, müssen Sie manuell wiederholen oder entfernen von Proben, um es 44.1 kHz-wie. Sie achten auf mono-sounds, wie Sie benötigen, um die Versorgung sowohl Links & rechts-Kanal-Proben zu Blinken, so müssen Sie wiederholen Sie Proben.
Guter Ausgangspunkt ist WavDecoder Klasse in Popforge s audio.format.wav-Paket.
InformationsquelleAutor YTF
Folgendes funktioniert bei mir:
Müssen Sie möglicherweise überprüfen, was gespeichert ist in Ihrer readResponse ByteArray-oder, wie die Daten immer Lesen, wenn Sie es zu laden. Sicherstellen, dass es ist geladen, die URLLoader-mit URLLoaderDataFormat.BINÄRE oder einfach nur mit ein URLStream-wie ich hier getan haben.
InformationsquelleAutor Joshua Noble