Calidad de servicio (QoS) ofrece una vista detallada del rendimiento del motor de vídeo. TVSDK proporciona estadísticas detalladas sobre la reproducción, el almacenamiento en búfer y los dispositivos.
TVSDK también proporciona información sobre los siguientes recursos descargados:
Puede leer información de calidad de servicio (QoS) acerca de los recursos descargados, como fragmentos y pistas, de la clase LoadInformation.
Implementación de onLoadInformationAvailable
detector de eventos callback.
private function onLoadInformationAvailable(event:LoadInformationEvent):void {
var loadInformation:LoadInformation = event.loadInformation;
// process the load information here
}
Registre el detector de eventos, al que TVSDK llama cada vez que se descarga un fragmento.
player.addEventListener(LoadInformationEvent.LOAD_INFORMATION_AVAILABLE,
onLoadInformationAvailable);
Lea los datos de interés de la LoadInformation
que se pasa a la llamada de retorno.
Propiedad | Tipo | Descripción |
---|---|---|
downloadDuration | Número |
Duración de la descarga en milisegundos. TVSDK no diferencia entre el tiempo que tardó el cliente en conectarse al servidor y el tiempo que tardó en descargar el fragmento completo. Por ejemplo, si un segmento de 10 MB tarda 8 segundos en descargarse, TVSDK proporciona esa información, pero no indica que hayan transcurrido 4 segundos hasta el primer byte y otros 4 segundos hasta descargar todo el fragmento. |
mediaDuration | Número |
La duración de los medios de los fragmentos descargados en milisegundos. |
talla | Número |
El tamaño del recurso descargado en bytes. |
trackIndex | int |
El índice de la pista correspondiente, si se conoce; de lo contrario, 0. |
trackName | Cadena |
El nombre de la pista correspondiente, si se conoce; de lo contrario, es nulo. |
trackType | Cadena |
El tipo de la pista correspondiente, si se conoce; de lo contrario, es nulo. |
type | Cadena |
Lo que descargó TVSDK. Uno de los siguientes:
|
url | Cadena |
Dirección URL que señala al recurso descargado. |
Puede leer las estadísticas de reproducción, almacenamiento en búfer y dispositivo de la clase QOSProvider.
El QOSProvider
proporciona varias estadísticas, incluida información sobre el almacenamiento en búfer, las velocidades de bits, las velocidades de fotogramas, los datos de tiempo, etc.
También proporciona información sobre el dispositivo, como el fabricante, el modelo, el sistema operativo, la versión del SDK y el tamaño/densidad de la pantalla.
Cree una instancia de un reproductor multimedia.
Crear un QOSProvider
y adjuntarlo al reproductor de contenidos.
// Create Media Player.
_mediaQosProvider = new QOSProvider;
_mediaQosProvider.attachMediaPlayer(_mediaPlayer);
(Opcional) Lea las estadísticas de reproducción.
Una solución para leer las estadísticas de reproducción es tener un temporizador, que recupere periódicamente los nuevos valores de QoS de la QOSProvider
. Por ejemplo:
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);
}
(Opcional) Lea la información específica 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);