HLS和DASH資料流為相同的短時連拍視訊提供不同的位元速率編碼(設定檔)。 TVSDK可以根據可用頻寬來選取每個高載的品質等級。
TVSDK會持續監控位元速率,確保內容以目前網路連線的最佳位元速率播放。
您可以設定最適化位元速率(ABR)切換原則,以及多位元速率(MBR)資料流的初始、最小和最大位元速率。 TVSDK會自動切換為位元速率,以在指定的設定中提供最佳播放體驗。
初始位元速率 | 第一個區段的所需播放位元速率(每秒位元數)。 開始播放時,第一個區段會使用最接近的輪廓,等於或大於初始位元速率。 如果已定義最低位元速率,且初始位元速率低於最低位元速率,TVSDK會選取最低位元速率高於最低位元速率的設定檔。 如果初始速率高於最大速率,TVSDK會選取低於最大速率的最高速率。 如果初始位元速率為零或未定義,則初始位元速率由ABR原則決定。 ABRIinitialBitRate 傳回代表每秒位元組設定檔的整數值。 |
最小位元速率 | ABR可切換的最低允許位元速率。 ABR切換會忽略位元速率低於此位元速率的設定檔。 Abriminbitrate 傳回代表每秒位元設定檔的整數值。 |
最大位元速率 | ABR可切換的最高允許位元速率。 ABR切換會忽略位元速率高於此位元速率的設定檔。 ABRMaxBitRate 傳回代表每秒位元設定檔的整數值。 |
ABR切換原則 | 儘可能讓播放逐漸切換到最高位元速率設定檔。 您可以設定ABR切換原則,以決定TVSDK在設定檔之間切換的速度。 預設值為 MODERATE_POLICY . 當TVSDK決定切換至較高的位元速率時,播放器會根據目前的ABR原則,選取要切換至的理想位元速率設定檔:
如果初始位元速率為零或未指定,但已指定原則,則播放會從最低位元速率設定檔開始(若為保守設定)、最接近中度可用設定檔位元速率中值的設定檔,以及最高位元速率設定檔開始(若為主動設定)。 如果指定最小和最大位元速率,則原則會在限制中運作。 ABRPolicy 傳回目前設定,從 Abrcontrolparameters 列舉: CONSERVATIVE_POLICY、MODERATE_POLICY或AGGRESSIVE_POLICY。 |
請牢記以下資訊:
ProfileEvent.PROFILE_CHANGED
.例如,如果資料流有下列設定檔:
如果您指定300000至2000000的範圍,TVSDK只會考慮設定檔1、2和3。 這可讓應用程式根據各種網路狀況進行調整,例如從Wi-Fi切換至3G或各種裝置,例如手機、平板電腦或桌上型電腦。
若要設定ABR控制引數,請執行下列任一項作業:
使用 ABRControlParameterBuilder
協助程式類別,可設定引數的任何子集(運算於 ABRControlParameter
幕後)
在上設定引數 ABRControlParameter
類別。
使用 ABRControlParametersBuilder
協助程式類別是設定ABR引數最簡單、最有效率的方式。
此 ABRControlParametersBuilder
建構函式會將所有ABR引數設定為基礎上的預設值 ABRControlParameters
物件。
只要維持對單個ABR引數的參照,您就可以在執行期間重設該引數 ABRControlParametersBuilder
執行個體。
此類別也包含 toABRControlParameters()
協助程式方法。 使用此方法取得 ABRControlParameters
並將其設定在 mediaPlayer.ABRControlParameters
屬性。 這會讓您的設定在播放器中生效。
例項化 ABRControlParametersBuilder
協助程式類別,並在媒體播放器上設定引數。
例如,下列範例將所有引數初始化為預設值,然後僅將原則設定為保守,並將最大位元速率限製為1000000:
var abrBuilder:ABRControlParametersBuilder =
new ABRControlParametersBuilder();
abrBuilder.policy = ABRControlParameters.CONSERVATIVE_POLICY;
abrBuilder.maxBitRate = 1000000;
mediaPlayer.abrControlParameters =
abrBuilder.toABRControlParameters();
在執行階段修改個別的ABR引數。
若要修改個別引數,同時保留其餘引數不變:
// If later you want to reset the max bit rate to 2000000
abrBuilder.maxBitRate = 2000000;
mediaPlayer.abrControlParameters =
abrBuilder.toABRControlParameters();
若要保留先前設定,您必須維持對相同設定的參照 ABRControlParametersBuilder
您在步驟1建立的例項。
您只能設定ABR控制值 ABRControlParameters
,但您隨時可以建構新的架構。
在ABR引數存在之前,支援設定ABR引數的功能 ABRControlParametersBuilder
類別,但此功能在建構時設定ABR引數仍然有效。 不過,若要在建構後變更個別引數,您應使用 ABRControlParametersBuilder
類別。
下列條件適用於 ABRControlParameters
:
ArgumentError
擲回。決定初始、最小和最大位元速率。
決定ABR原則:
CONSERVATIVE_POLICY
MODERATE_POLICY
AGGRESSIVE_POLICY
設定ABR引數值 ABRControlParameters
建構函式並將它們指派給媒體播放器。
mediaPlayer.abrControlParameters = new ABRControlParameters(
ABRControlParameters.CONSERVATIVE_POLICY,
0, // Initial bit rate
0, // Minimum bit rate
1000000 // Maximum bit rate
);