Estadísticas de calidad de servicio

Quality of service (QoS) proporciona 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 de archivos

Rastrear en el nivel de fragmento utilizando información de carga

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

  1. Implemente y registre el detector de eventos MediaPlayerEvent.LOAD_INFORMATION_AVAILABLE.

  2. Llame a event.getLoadInformation() para leer los datos relevantes del parámetro event que se pasa a la rellamada.

    NOTA

    Para obtener más información sobre LoadInformation, consulte 2.7 para los documentos de API de Android (Java).

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

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, el ID del dispositivo del fabricante y la densidad/tamaño de la pantalla.

  1. Cree una instancia de un reproductor de medios.

  2. Cree un objeto QOSProvider y adjúntelo al reproductor de medios.

    El constructor QOSProvider toma un contexto de reproductor para que pueda recuperar información específica del dispositivo.

    // Create Media Player. 
    _mediaQosProvider = new QOSProvider(getActivity().getApplicationContext()); 
    _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 obtenga periódicamente los nuevos valores de QoS de QOSProvider.

    Por ejemplo:

    _playbackClock = new Clock(PLAYBACK_CLOCK, 1000); // every 1 second 
    _playbackClockEventListener = new Clock.ClockEventListener() { 
        @Override 
        public void onTick(String name) { 
            getActivity().runOnUiThread(new Runnable() { 
                @Override 
                public void run() { 
                    PlaybackInformation playbackInformation =  
                      _mediaQosProvider.getPlaybackInformation();  
                    setQosItem("Frame rate", (int) playbackInformation.getFrameRate());  
                    setQosItem("Dropped frames", (int) playbackInformation.getDroppedFrameCount()); 
                    setQosItem("Bitrate", (int) playbackInformation.getBitrate()); 
                    setQosItem("Buffering time", (int) playbackInformation.getBufferingTime());  
                    setQosItem("Buffer length", (int) playbackInformation.getBufferLength());  
                    setQosItem("Buffer time", (int) playbackInformation.getBufferTime());  
                    setQosItem("Empty buffer count", (int) playbackInformation.getEmptyBufferCount());  
                    setQosItem("Time to load", (int) playbackInformation.getTimeToLoad());  
                    setQosItem("Time to start", (int) playbackInformation.getTimeToStart()); 
                    setQosItem("Time to prepare", (int) playbackInformation.getTimeToPrepare()); 
                    setQosItem("Perceived Bandwidth", (int) playbackInformation.getPerceivedBandwidth());   
                    playbackInformation.getPerceivedBandwidth()); 
                } 
            }); 
        }; 
    }; 
    
  4. (Opcional) Lea la información específica del dispositivo.

    // Show device information 
    DeviceInformation deviceInfo = new QOSProvider(parent.getApplicationContext()). 
                                   getDeviceInformation(); 
    tv = (TextView) view.findViewById(R.id.aboutDeviceModel); 
    tv.setText(parent.getString(R.string.aboutDeviceModel) + " " +  
      deviceInfo.getManufacturer() + " - " + deviceInfo.getModel()); 
    
    tv = (TextView) view.findViewById(R.id.aboutDeviceSoftware); 
    tv.setText(parent.getString(R.string.aboutDeviceSoftware) + " " +  
      deviceInfo.getOS() + ", SDK: " + deviceInfo.getSDK()); 
    
    tv = (TextView) view.findViewById(R.id.aboutDeviceResolutin); 
    String orientation = parent.getResources().getConfiguration().orientation ==  
      Configuration.ORIENTATION_LANDSCAPE ? "landscape" : "portrait"; 
    tv.setText(parent.getString(R.string.aboutDeviceResolution) + " " +  
      deviceInfo.getWidthPixels() + "x" + deviceInfo.getHeightPixels() +  
      " (" + orientation + ")"); 
    

En esta página