服務質量統計資料

服務品質(QoS)提供視訊引擎執行情形的詳細檢視。 TVSDK提供播放、緩衝和裝置的詳細統計資料。

TVSDK也提供下列下載資源的相關資訊:

  • 播放清單/資訊清單檔案
  • 檔案片段
  • 檔案的追蹤資訊

使用載入資訊在片段層級追蹤

您可以從LoadInformation類讀取有關下載資源(如片段和軌道)的服務質量(QoS)資訊。

  1. 實作onLoadInformationAvailable回呼事件偵聽器。

    private function onLoadInformationAvailable(event:LoadInformationEvent):void { 
        var loadInformation:LoadInformation = event.loadInformation; 
        // process the load information here     
    }
    
  2. 註冊事件偵聽器,TVSDK會在每次片段下載時呼叫該偵聽器。

    player.addEventListener(LoadInformationEvent.LOAD_INFORMATION_AVAILABLE,  
                                     onLoadInformationAvailable);
    
  3. 讀取傳遞至回呼的LoadInformation中的相關資料。

    屬性 類型 說明
    downloadDuration

    數字

    下載的持續時間(以毫秒為單位)。

    TVSDK不會區分用戶端連線至伺服器的時間與下載完整片段所花的時間。 例如,如果10 MB區段需要8秒才能下載,TVSDK會提供該資訊,但不會告訴您直到第一個位元組再下載4秒,才下載整個片段。

    mediaDuration

    數字

    下載片段的媒體持續時間(以毫秒為單位)。
    大小

    數字

    已下載資源的大小(以位元組為單位)。
    trackIndex

    int

    相應軌道的索引(如果已知);否則,為0。
    trackName

    字串

    相應軌道的名稱(如果已知);否則,為null。
    trackType

    字串

    相應軌道的類型(如果已知);否則,為null。
    type

    字串

    TVSDK下載的內容。 下列其中一項:
    • MANIFEST —— 播放清單/資訊清單
    • 片段——片段
    • TRACK —— 與特定軌道關聯的片段
    有時可能無法檢測資源類型。 如果發生這種情況,則返回FILE。
    url

    字串

    指向已下載資源的URL。

讀取QOS回放、緩衝和設備統計資訊

您可以從QOSProvider類讀取播放、緩衝和設備統計資訊。

QOSProvider類別提供各種統計資料,包括緩衝、位元速率、影格速率、時間資料等資訊。

此外,它還提供有關裝置的資訊,例如製造商、機型、作業系統、SDK版本和螢幕大小/密度。

  1. 實例化媒體播放器。

  2. 建立QOSProvider物件,並將它附加至媒體播放器。

    // Create Media Player. 
    _mediaQosProvider = new QOSProvider; 
    _mediaQosProvider.attachMediaPlayer(_mediaPlayer);
    
  3. (可選)閱讀播放統計資料。

    讀取播放統計資訊的一個解決方案是具有計時器,該計時器定期從QOSProvider中讀取新的QoS值。 例如:

    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. (可選)閱讀裝置特定資訊。

    // 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); 
    

本頁內容