Quality of Service (QoS) offre una visualizzazione dettagliata delle prestazioni del motore video. TVSDK fornisce statistiche dettagliate sulla riproduzione, il buffering e i dispositivi.
TVSDK fornisce anche informazioni sulle seguenti risorse scaricate:
È possibile leggere informazioni sulla qualità del servizio (QoS) relative alle risorse scaricate, ad esempio frammenti e tracce, dalla classe LoadInformation.
Implementa il listener di eventi di callback onLoadInformationAvailable
.
private function onLoadInformationAvailable(event:LoadInformationEvent):void {
var loadInformation:LoadInformation = event.loadInformation;
// process the load information here
}
Registra il listener di eventi, che TVSDK chiama ogni volta che un frammento viene scaricato.
player.addEventListener(LoadInformationEvent.LOAD_INFORMATION_AVAILABLE,
onLoadInformationAvailable);
Leggi i dati di interesse del LoadInformation
passato al callback.
Proprietà | Tipo | Descrizione |
---|---|---|
downloadDuration | Numero |
Durata del download in millisecondi. TVSDK non distingue tra il tempo impiegato dal client per connettersi al server e il tempo impiegato per scaricare l’intero frammento. Ad esempio, se il download di un segmento da 10 MB richiede 8 secondi, TVSDK fornisce tali informazioni, ma non indica che sono necessari 4 secondi fino al primo byte e altri 4 secondi per scaricare l’intero frammento. |
mediaDuration | Numero |
Durata dei frammenti scaricati in millisecondi. |
size | Numero |
Dimensione della risorsa scaricata in byte. |
trackIndex | int |
l'indice del binario corrispondente, se noto; altrimenti, 0. |
trackName | Stringa |
il nome del brano corrispondente, se noto; altrimenti, null. |
trackType | Stringa |
il tipo di binario corrispondente, se noto; altrimenti, null. |
type | Stringa |
Cos’è stato scaricato TVSDK. Una delle seguenti opzioni:
|
url | Stringa |
URL che punta alla risorsa scaricata. |
È possibile leggere le statistiche di riproduzione, buffering e dispositivo dalla classe QOSProvider.
La classe QOSProvider
fornisce diverse statistiche, tra cui buffering, bit rate, frame rate, dati temporali e così via.
Fornisce inoltre informazioni sul dispositivo, ad esempio il produttore, il modello, il sistema operativo, la versione SDK e la dimensione/densità dello schermo.
Creare un'istanza di un lettore multimediale.
Crea un oggetto QOSProvider
e allegalo al lettore multimediale.
// Create Media Player.
_mediaQosProvider = new QOSProvider;
_mediaQosProvider.attachMediaPlayer(_mediaPlayer);
(Facoltativo) Leggere le statistiche di riproduzione.
Una soluzione per leggere le statistiche di riproduzione è avere un timer, che recupera periodicamente i nuovi valori QoS dal QOSProvider
. Ad esempio:
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);
}
(Facoltativo) Leggi le informazioni specifiche del dispositivo.
// 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);