服務質量統計

服務質量(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 傳給回叫的。

    屬性 類型 說明
    下載持續時間

    數字

    下載的持續時間(毫秒)。

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

    媒體持續時間

    數字

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

    數字

    已下載資源的大小(以位元組為單位)。
    跟蹤索引

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

    字串

    相應軌道的名稱(如果已知);否則,為空。
    跟蹤類型

    字串

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

    字串

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

    字串

    指向下載資源的URL。

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

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

QOSProvider 類提供各種統計資訊,包括有關緩衝、比特率、幀速率、時間資料等的資訊。

它還提供有關設備的資訊,如製造商、型號、作業系統、SDK版本和螢幕大小/密度。

  1. 實例化媒體播放器。

  2. 建立 QOSProvider 對象,並將其附加到媒體播放器。

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

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

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

本頁內容