2012-04-18 61 views
0

我當前正在播放的音頻文件,逐步像這樣確定:當音頻是準備玩

import flash.media.Sound; 
import flash.media.SoundLoaderContext; 
import flash.net.URLRequest; 

var s:Sound = new Sound(); 
var context:SoundLoaderContext = new SoundLoaderContext(5000, false); 

s.load(new URLRequest('AUDIO URL'), context); 
s.play(); 

偉大的工程,但我想知道什麼時候有足夠的數據(基於緩衝時間)和開始播放文件。爲了澄清,我不想確定何時該文件已完全下載,我知道這是完成與Event.COMPLETE

回答

1

如何使用ProgressEvent

s.addEventListener(ProgressEvent.PROGRESS, progressHandler); 

function progressHandler(event:ProgressEvent):void { 

    trace(event.bytesLoaded); 
} 

所以當bytesloaded等於緩衝區量時,你就知道了。


編輯:

也許你可以檢查該isBuffering屬性,看看是否緩衝區填滿或沒有。

+0

這種方法不適用於不同的比特率(即一個128k比特率的文件與具有64k比特率的文件不會有相同的相對緩衝時間,這很重要,因爲如果比特率很高,只需要一秒鐘或者可能加載了兩個文件)。 – nathanjosiah 2012-04-18 15:37:09

+0

也許你可以使用isBuffering屬性。 – loxxy 2012-04-18 18:10:35

+0

我會嘗試。 – nathanjosiah 2012-04-18 19:08:11