Estadísticas de calidad del servicio

Última actualización: 2023-09-19

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:

  • Archivos de lista de reproducción/manifiesto
  • Fragmentos de archivo
  • Información de seguimiento para archivos

Seguimiento en el nivel de fragmento mediante información de carga

Puede leer información de calidad de servicio (QoS) acerca de los recursos descargados, como fragmentos y pistas, de la clase LoadInformation.

  1. Implementación de onLoadInformationAvailable detector de eventos callback.

    private function onLoadInformationAvailable(event:LoadInformationEvent):void {
        var loadInformation:LoadInformation = event.loadInformation;
        // process the load information here
    }
    
  2. Registre el detector de eventos, al que TVSDK llama cada vez que se descarga un fragmento.

    player.addEventListener(LoadInformationEvent.LOAD_INFORMATION_AVAILABLE,
                                     onLoadInformationAvailable);
    
  3. 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:
    • MANIFIESTO: una lista de reproducción/manifiesto
    • FRAGMENTO: un fragmento
    • TRACK: fragmento asociado a un seguimiento específico
    A veces, es posible que no se pueda detectar el tipo de recurso. Si esto sucede, se devuelve FILE.
    url

    Cadena

    Dirección URL que señala al recurso descargado.

Leer las estadísticas de reproducción, almacenamiento en búfer y dispositivo de QOS

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.

  1. Cree una instancia de un reproductor multimedia.

  2. Crear un QOSProvider y adjuntarlo al reproductor de contenidos.

    // Create Media Player.
    _mediaQosProvider = new QOSProvider;
    _mediaQosProvider.attachMediaPlayer(_mediaPlayer);
    
  3. (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);
    }
    
  4. (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);
    

En esta página