服務品質(QoS)可提供視訊引擎執行狀況的詳細檢視。 TVSDK提供播放、緩衝和裝置的詳細統計資料。
TVSDK也提供下列已下載資源的相關資訊:
您可以從LoadInformation類別讀取有關已下載資源(例如片段和軌道)的服務品質(QoS)資訊。
實作 onLoadInformationAvailable
回呼事件監聽器。
private function onLoadInformationAvailable(event:LoadInformationEvent):void {
var loadInformation:LoadInformation = event.loadInformation;
// process the load information here
}
註冊事件接聽程式,TVSDK在每次下載片段時都會呼叫此接聽程式。
player.addEventListener(LoadInformationEvent.LOAD_INFORMATION_AVAILABLE,
onLoadInformationAvailable);
從讀取感興趣的資料 LoadInformation
會傳遞至回撥的專案。
屬性 | 型別 | 說明 |
---|---|---|
downloadduration | 數字 |
下載持續時間(毫秒)。 TVSDK不會區分使用者端連線至伺服器所花的時間與下載完整片段所花的時間。 例如,如果下載10 MB的片段需要8秒,TVSDK會提供該資訊,但不會告訴您第一個位元組花了4秒,而下載整個片段又花了4秒。 |
mediaDuration | 數字 |
下載片段的媒體持續時間(毫秒)。 |
大小 | 數字 |
已下載資源的大小(位元組)。 |
trackIndex | int |
對應曲目的索引(如果已知);否則為0。 |
trackName | 字串 |
對應磁軌的名稱(如果已知);否則為null。 |
trackType | 字串 |
對應磁軌的型別(如果已知);否則為null。 |
type | 字串 |
下載的TVSDK。 下列其中一項:
|
url | 字串 |
指向已下載資源的URL。 |
您可以從QOSProvider類別讀取播放、緩衝和裝置統計資料。
此 QOSProvider
class提供各種統計資料,包括有關緩衝、位元速率、影格速率、時間資料的資訊,等等。
此外也提供裝置的相關資訊,例如製造商、型號、作業系統、SDK版本和熒幕大小/密度。
例項化媒體播放器。
建立 QOSProvider
物件並將其附加至媒體播放器。
// Create Media Player.
_mediaQosProvider = new QOSProvider;
_mediaQosProvider.attachMediaPlayer(_mediaPlayer);
(選用)讀取播放統計資料。
讀取播放統計資料的解決方案之一,是讓計時器定期從擷取新的QoS值 QOSProvider
. 例如:
var qosTimer:Timer = new Timer(1000); // every 1 second
qosTimer.addEventListener(TimerEvent.Timer, onQoSTimer);
qosTimer.start();
private function onQoSTimer(event:TimerEvent):void {
var playbackInformation:PlaybackInformation = _mediaQosProvider.getPlaybackInformation();
qosInfo["Frame rate"] = playbackInformation.frameRate.toFixed();
qosInfo["Dropped frames"] = playbackInformation.droppedFrameCount.toFixed();
qosInfo["Bitrate"] = playbackInformation.bitrate.toFixed();
qosInfo["Bandwidth"] = playbackInformation.perceivedBandwidth;
qosInfo["Buffering time"] = playbackInformation.bufferingTime.toFixed();
qosInfo["Buffer length"] = playbackInformation.bufferLength.toFixed();
qosInfo["Buffer time"] = playbackInformation.bufferTime.toFixed();
qosInfo["Empty buffer count"] = playbackInformation.emptyBufferCount.toFixed();
qosInfo["Time to load"] = playbackInformation.timeToLoad.toFixed();
qosInfo["Time to start"] = playbackInformation.timeToStart.toFixed();
qosView.update(qosInfo);
}
(選擇性)讀取裝置特定資訊。
// Show device information
var deviceInfo:DeviceInformation = new QOSProvider.deviceInformation;
qosInfo["deviceModel"] = deviceInfo.manufacturer +"-" + deviceInfo.model;
qosInfo["os"] = deviceInfo.os;
qosInfo["runtime"] = deviceInfo.runtimeVersion;
qosInfo["widthPixels"] = deviceInfo.widthPixels;
qosInfo["heightPixels"] = deviceInfo.heightPixels;
qosView.update(qosInfo);