Statistiche sulla qualità del servizio

Quality of Service (QoS) offre una visualizzazione dettagliata delle prestazioni del motore video. TVSDK fornisce statistiche dettagliate su riproduzione, buffering e dispositivi.

TVSDK fornisce inoltre informazioni sulle seguenti risorse scaricate:

  • File playlist/manifest
  • Frammenti di file
  • Informazioni di tracciamento per i file

Tracciare a livello di frammento utilizzando le informazioni di caricamento

È possibile leggere informazioni sulla qualità del servizio (QoS) relative alle risorse scaricate, ad esempio frammenti e brani, dalla classe LoadInformation.

  1. Implementare onLoadInformationAvailable listener di eventi di callback.

    private function onLoadInformationAvailable(event:LoadInformationEvent):void {
        var loadInformation:LoadInformation = event.loadInformation;
        // process the load information here
    }
    
  2. Registra il listener di eventi, che TVSDK chiama ogni volta che un frammento è stato scaricato.

    player.addEventListener(LoadInformationEvent.LOAD_INFORMATION_AVAILABLE,
                                     onLoadInformationAvailable);
    
  3. Leggi i dati di interesse da LoadInformation che viene 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 necessario 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 occorsi 4 secondi prima del primo byte e altri 4 secondi per scaricare l’intero frammento.

    mediaDuration

    Numero

    La durata media dei frammenti scaricati in millisecondi.
    dimensione

    Numero

    Dimensione della risorsa scaricata in byte.
    trackIndex

    int

    Indice del binario corrispondente, se noto; altrimenti, 0.
    trackName

    Stringa

    Nome del brano corrispondente, se noto; in caso contrario, null.
    trackType

    Stringa

    Tipo del brano corrispondente, se noto; altrimenti null.
    tipo

    Stringa

    Informazioni scaricate da TVSDK. Uno dei seguenti elementi:
    • MANIFEST (MANIFESTO): playlist/manifesto
    • FRAMMENTO: un frammento
    • TRACK: frammento associato a un brano specifico
    A volte potrebbe non essere possibile rilevare il tipo di risorsa. In questo caso, viene restituito FILE.
    url

    Stringa

    URL che punta alla risorsa scaricata.

Leggi le statistiche su riproduzione, buffering e dispositivo QOS

È possibile leggere le statistiche di riproduzione, buffering e dispositivo dalla classe QOSProvider.

Il QOSProvider class fornisce varie statistiche, tra cui informazioni su buffering, bit rate, frame rate, dati temporali e così via.

Fornisce inoltre informazioni sul dispositivo, ad esempio produttore, modello, sistema operativo, versione SDK e dimensioni/densità dello schermo.

  1. Crea un'istanza di un lettore multimediale.

  2. Creare un QOSProvider e collegarlo al lettore multimediale.

    // Create Media Player.
    _mediaQosProvider = new QOSProvider;
    _mediaQosProvider.attachMediaPlayer(_mediaPlayer);
    
  3. (Facoltativo) Leggi le statistiche di riproduzione.

    Una soluzione per leggere le statistiche di riproduzione è disporre di un timer, che recupera periodicamente i nuovi valori QoS dalla 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);
    }
    
  4. (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);
    

In questa pagina