服務質量(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
傳給回叫的。
屬性 | 類型 | 說明 |
---|---|---|
下載持續時間 | 數字 |
下載的持續時間(毫秒)。 TVSDK不區分客戶端連接到伺服器所花的時間和下載完整片段所花的時間。 例如,如果10 MB的段下載需要8秒,則TVSDK會提供該資訊,但不會告訴您下載整個片段需要4秒,直到第一個位元組再花4秒。 |
媒體持續時間 | 數字 |
下載的片段的媒體持續時間(毫秒)。 |
大小 | 數字 |
已下載資源的大小(以位元組為單位)。 |
跟蹤索引 | 整 |
相應軌道的索引(如果已知);否則,為0。 |
跟蹤名稱 | 字串 |
相應軌道的名稱(如果已知);否則,為空。 |
跟蹤類型 | 字串 |
相應軌道的類型(如果已知);否則,為空。 |
類型 | 字串 |
TVSDK下載的內容。 以下情況之一:
|
url | 字串 |
指向下載資源的URL。 |
可以從QOSProvider類讀取回放、緩衝和設備統計資訊。
的 QOSProvider
類提供各種統計資訊,包括有關緩衝、比特率、幀速率、時間資料等的資訊。
它還提供有關設備的資訊,如製造商、型號、作業系統、SDK版本和螢幕大小/密度。
實例化媒體播放器。
建立 QOSProvider
對象,並將其附加到媒體播放器。
// Create Media Player.
_mediaQosProvider = new QOSProvider;
_mediaQosProvider.attachMediaPlayer(_mediaPlayer);
(可選)閱讀回放統計資訊。
讀取回放統計資訊的一個解決方案是具有計時器,該計時器定期從 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);