服務品質統計資料

上次更新: 2023-09-21

服務品質(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秒,而下載整個片段又花了4秒。

    mediaDuration

    數字

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

    數字

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

    int

    對應曲目的索引(如果已知);否則為0。
    trackName

    字串

    對應磁軌的名稱(如果已知);否則為null。
    trackType

    字串

    對應磁軌的型別(如果已知);否則為null。
    type

    字串

    下載的TVSDK。 下列其中一項:
    • 資訊清單 — 播放清單/資訊清單
    • 片段 — 片段
    • TRACK — 與特定追蹤相關聯的片段
    有時可能無法偵測資源的型別。 如果發生這種情況,則會傳回FILE。
    url

    字串

    指向已下載資源的URL。

讀取QOS播放、緩衝和裝置統計資料

您可以從QOSProvider類別讀取播放、緩衝和裝置統計資料。

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

此外也提供裝置的相關資訊,例如製造商、型號、作業系統、SDK版本和熒幕大小/密度。

  1. 例項化媒體播放器。

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

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

    讀取播放統計資料的解決方案之一,是讓計時器定期從擷取新的QoS值 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);
    

此頁面上的