Quality of service (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 sobre la calidad del servicio (QoS) acerca de los recursos descargados, como fragmentos y pistas, desde la clase LoadInformation .
Implemente el detector de eventos de llamada de retorno onLoadInformationAvailable
.
private function onLoadInformationAvailable(event:LoadInformationEvent):void {
var loadInformation:LoadInformation = event.loadInformation;
// process the load information here
}
Registre el detector de eventos, al que llama TVSDK cada vez que se descarga un fragmento.
player.addEventListener(LoadInformationEvent.LOAD_INFORMATION_AVAILABLE,
onLoadInformationAvailable);
Lea los datos de interés de LoadInformation
que se pasan a la rellamada.
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 la descarga de un segmento de 10 MB tarda 8 segundos, TVSDK proporciona esa información, pero no le indica que se tardaron 4 segundos hasta el primer byte y otros 4 segundos en descargar el fragmento completo. |
mediaDuration | Número |
Duración del contenido de los fragmentos descargados en milisegundos. |
size | Número |
El tamaño del recurso descargado en bytes. |
trackIndex | int |
Í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, null. |
trackType | Cadena |
el tipo de pista correspondiente, si se conoce; de lo contrario, null. |
type | Cadena |
Qué ha descargado 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 dispositivos desde la clase QOSProvider.
La clase QOSProvider
proporciona varias estadísticas, incluida información sobre el almacenamiento en búfer, las tasas de bits, las tasas 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 de medios.
Cree un objeto QOSProvider
y adjúntelo al reproductor de medios.
// 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 obtenga periódicamente los nuevos valores de QoS de 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);