Statistiche sulla qualità del servizio

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:

  • Playlist/file manifest
  • Frammenti di file
  • Tracciamento delle informazioni sui file

Tracciare a livello di frammento utilizzando le informazioni sul caricamento

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

  1. Implementa il listener di eventi di callback onLoadInformationAvailable .

    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 viene scaricato.

    player.addEventListener(LoadInformationEvent.LOAD_INFORMATION_AVAILABLE,
                                     onLoadInformationAvailable);
    
  3. 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:
    • MANIFEST - Una playlist/manifesto
    • FRAMMENTO - Un frammento
    • TRACK - Un frammento associato a una traccia specifica
    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 relative a riproduzione, buffering e dispositivo QOS

È 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.

  1. Creare un'istanza di un lettore multimediale.

  2. Crea un oggetto QOSProvider e allegalo al lettore multimediale.

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