

# IVS 播放器 SDK
<a name="player"></a>

若要使用 Amazon Interactive Video Service (IVS)，您必須使用 Amazon IVS 播放器。該播放器是用於播放 Amazon IVS 串流的跨平台開發套件。它的設計目的是利用 Amazon IVS 架構，並針對 Amazon IVS 播放進行最佳化。

我們能保證其效能的唯一播放器是 Amazon IVS 播放器。為了實現低延遲，需要使用 Amazon IVS 播放器。

Amazon IVS 播放器的主要特點是：
+ **低延遲串流** — 低延遲是打造優質互動式使用者體驗的關鍵要素，能提升觀眾的體驗。延遲會在廣播者和觀眾之間的傳輸路徑中逐漸增加，從而降低回應速度。

  端對端延遲是從在攝影機上擷取即時串流到出現在觀眾螢幕上的延遲。Amazon IVS 旨在提供低端對端延遲 (在五秒內，具體取決於廣播位置和廣播者的設定)。*要實現這種低延遲，需要 Amazon IVS 播放器*。
+ **跨平台一致性** — 觀眾在各種平台上觀看廣播。從行動裝置到 Web 瀏覽器，Amazon IVS 播放器為所有觀眾提供相似體驗。這種一致性是可能的，因為每個平台都使用相同的播放器函數庫。播放器程式庫是 Amazon IVS 架構的一個主要組成部分。使用一個影片堆疊可確保在所有支援的平台上以一致的方式提供所有影片播放行為 (包括低延遲模式、定時中繼資料、分析、錯誤追蹤、報告和記錄)。
+ **自適應位元速率串流 (ABR)** — Amazon IVS 播放器使用針對低延遲環境進行最佳化的 ABR 演算法。播放器實時測量服務品質和頻寬可用性，並調整影片品質和緩衝層級，以提供不間斷的播放。當連線品質受損時，ABR 會切換到較低的位元速率；當連線品質改善時，它會切換到較高的位元速率。
+ **定時中繼資料** — Amazon IVS 播放器支援*定時中繼資料*，它可以用來建置交互式元素，如輪詢和測驗。中繼資料是一組資料，它們描述並提供有關其他資料的資訊。使用「定時」中繼資料時，時間碼會伴隨有關串流的資料片段。在播放期間，時間碼做為提示點，根據資料觸發動作，例如：
  + 傳送運動串流的球員統計資料
  + 傳送即時購物串流的產品詳細資訊
  + 傳送即時測驗串流的問題
+ **強大的錯誤處理** — 處理好暫時性錯誤可避免檢視體驗中斷。Amazon IVS 播放器的強大錯誤處理能力可偵測許多潛在的串流錯誤，自動切換到替代轉譯。觀眾不受干擾地繼續觀看廣播，而不需要採取任何糾正措施。
+ **易於整合**— Amazon IVS 播放器 API 彌補了 Amazon IVS 客戶應用程式和播放器程式庫之間的差距。API 具有所有支援平台的繫結，讓播放器能夠輕鬆地整合到應用程式中，同時使用熟悉的編碼環境和技術。透過完全控制 UI 元素，客戶可以自訂應用程式的品牌和展示方面。

Amazon IVS 播放器不支援使用 Airplay 進行投放，但開發人員可以透過將工作階段轉換為 AVPlayer 來實作 Airplay。但是，AVPlayer 上的延遲會高於 Amazon IVS 播放器 SDK 中的延遲，因此這種轉換無法無縫運作。[此處](https://github.com/aws-samples/sample-for-airplay-on-ivs)提供了如何完成此轉換的範例。

您可以使用預設的 Chromecast 接收器應用程式，在播放器之外使用 Chromecast 進行投射。但是，這些應用程式中的延遲會高於 Amazon IVS 播放程式開發套件中的延遲，因此交換器將無法無縫運作。另請參閱 Amazon IVS 廣播 SDK 相關文件：[低延遲串流](broadcast.md)和[即時串流](https://docs.aws.amazon.com//ivs/latest/RealTimeUserGuide/broadcast.html)。

## 瀏覽器和平台要求
<a name="player-browser-platform-requirements"></a>

如需各種瀏覽器最新發行版本的詳細資訊，請參閱：
+ [Chrome 平台狀態](https://chromestatus.com/roadmap)
+ [Firefox 版本](https://www.mozilla.org/en-US/firefox/releases/)
+ [Microsoft Edge 版本排程](https://learn.microsoft.com/en-us/deployedge/microsoft-edge-release-schedule)
+ [Safari 版本備註](https://developer.apple.com/documentation/safari-release-notes)

雖然 Amazon IVS 可能適用於某些舊版瀏覽器，但我們不會修正與舊版瀏覽器相關的錯誤。

在瀏覽器類型的環境中，不支援 IVS 播放器 Web SDK (包括 Video.js 和播放器 JW 整合)。這包括原生 WebView 和支援 Web 應用程式的「10 英尺裝置」 (電視、主持人、機上盒)。如果您不確定下表以外的特定瀏覽器支援，請聯絡 IVS 支援部門。

### 桌面瀏覽器
<a name="player-browser-platform-requirements-desktop"></a>


| 桌面瀏覽器 | 支援的平台 | 支援的版本 | 
| --- | --- | --- | 
| Chrome | Windows、macOS  | 兩個主要版本 (目前版本和最新的先前版本)  | 
| Firefox | Windows、macOS | 兩個主要版本 (目前版本和最新的先前版本) | 
| Edge | Windows 8.1 及更新版本  | 44.0 版和更新版本<br />(在適用於 [Microsoft Edge Legacy](https://support.microsoft.com/en-us/microsoft-edge/what-is-microsoft-edge-legacy-3e779e55-4c55-08e6-ecc8-2333768c0fb0) 的自動品質模式下，只支援正常延遲播放，而不支援低延遲播放。自動品質模式是指是否啟用 ABR。例如，在 Web 播放器上，請參閱`setAutoQualityMode`。 | 
| Safari | macOS | 兩個主要版本 (當前版本和最新的先前版本)<br />(在適用於 macOS 14 的 Safari 或以上版本的自動品質模式下，IVS 播放器 1.3.0 或以上版本支援低延遲播放。對於較早版本的 Safari 和 IVS 播放器，只支援正常延遲播放。請參閱上述「自動品質模式」。) | 

### 行動裝置瀏覽器
<a name="player-browser-platform-requirements-mobile"></a>


| 行動裝置瀏覽器 | 支援的版本 | 
| --- | --- | 
| 適用於 iOS 的 Chrome，適用於 iOS 的 Safari | 兩個主要版本 (目前版本和最新的先前版本)<br />(不支援低延遲播放。支援正常延遲播放。此限制條件適用於 iOS 的所有瀏覽器。) <br />(播放器 1.3.0 版及更新版本只支援定時中繼資料。) | 
| 適用於 iPad 的 Chrome、適用於 iPad 的 Safari | 兩個主要版本 (目前版本和最新的先前版本)<br />(當選擇「請求行動版網站」時：[See the AWS documentation website for more details](http://docs.aws.amazon.com/zh_tw/ivs/latest/LowLatencyUserGuide/player.html) | 
| 適用於 Android 的 Chrome | 兩個主要版本 (目前版本和最新的先前版本) | 

### 原生平台
<a name="player-browser-platform-requirements-native"></a>


| 平台 | 支援的版本 | 支援的裝置 | 
| --- | --- | --- | 
| Android | 6.0 版和更新版本 | 手機和平板電腦 | 
| iOS | 14\+ | 全部 | 

IVS 至少支援 4 個主要的 iOS 版本和 6 個主要的 Android 版本。我們目前的版本支援可能會超過這些最低限度。客戶至少會提前 3 個月透過 SDK 版本備註收到通知，知悉某個主要版本不再受支援。

## 在第三方播放器中降低延遲
<a name="player-reducing-latency"></a>

**針對基本和標準頻道類型**：為了盡可能降低延遲，您必須使用 Amazon IVS 播放器。在第三方播放器 (包括 iOS Safari) 中，您可以使用以下組態將延遲降低到約 10 秒：
+ 將編碼器 (例如 OBS) 的關鍵影格間隔設定為 2 秒或更低。
+ 將 `?keyframeInterval=2` 新增至 RTMP(S) URL。例如：`rtmps://a1b2c3d4e5f6.global-contribute.live-video.net:443/app/sk_us-west-2_abcd1234efgh5678ijkl?keyframeInterval=2`

**注意**：指定為 RTMP URL 一部分的關鍵影格間隔必須大於或等於編碼器中設定的值；否則，您可能會遭遇播放問題。您可以將該值設定為 2 到 6 的任意整數，而 2 會啟用最低延遲。

**針對進階頻道類型**：上述指引不適用。進階頻道類型會自動產生關鍵影格間隔時間以提高編碼效率，不論來源編碼關鍵影格間隔時間設定為何，關鍵影格之間最多為 2 秒。

### iOS Safari
<a name="player-reducing-latency-ios-safari"></a>

在 iOS Safari 中，您可以使用 IVS 播放器並將其設定為使用服務工作者，將延遲減少到大約 6-8 秒。如需實作詳細資訊和參考範例，請參閱《播放器 SDK：Web 指南》**中的[設定服務工作者](https://docs.aws.amazon.com//ivs/latest/LowLatencyUserGuide/web-getting-started.html#web-service-worker)。

**注意**：取得最低延遲時間需要將 IVS 串流的關鍵影格間隔設定為 2 秒。

## 純音訊播放
<a name="player-audio-only-playback"></a>

所有 IVS 頻道類型都支援純音訊呈現。這對於行動應用程式特別實用。例如，在行動應用程式中，如果使用者將應用程式設為在背景運作以節省頻寬，您可以將播放器切換為純音訊呈現。

如果是 ADVANCED-SD 和 ADVANCED-HD 頻道，純音訊呈現會自動包含在多變體播放清單中。如果是 BASIC 和 STANDARD 頻道，您必須將 `?allow_audio_only=true` 查詢參數附加至播放 URL，才能提供純音訊呈現。

注意：IVS Web 播放器 SDK 僅支援 1.24.0 版及更新版本中的純音訊播放功能。

## 支援
<a name="player-support"></a>

如果串流發生播放錯誤或其他播放問題，請透過播放器 API 判定唯一的播放工作階段識別符。


| 對於此 Amazon IVS 播放器： | 請使用： | 
| --- | --- | 
| Android | `sessionId` 函數 | 
| iOS | `sessionId` 的 屬性`IVSPlayer` | 
| Web | `getSessionId` 函數 | 

與 AWS 支援共用此播放工作階段識別符。使用它，他們就可以取得資訊來協助您對問題進行疑難排解。

**備註：**播放器在不斷改進。請參閱可用版本的 [Amazon IVS 版本備註](release-notes.md)以及已修正的問題。如果適當，請在聯絡支援部門之前，先更新您的播放器版本，並查看是否可以解決您的問題。

### 版本控制
<a name="player-support-versioning"></a>

Amazon IVS 播放器 SDK 使用[語意版本控制](https://semver.org/)。

對於此討論，假設：
+ 最新版本為 4.1.3 版。
+ 先前主要版本的最新版本為 3.2.4 版。
+ 版本 1.x 的最新版本為 1.5.6 版。

回溯相容的新功能會新增為最新版本的次要版本。在這種情況下，下一組新功能將被新增為 4.2.0 版。

回溯相容的次要錯誤修正會新增為最新版本的修補程式版本。在這裡，下一組小錯誤修復將被新增為 4.1.4 版。

回溯相容、主要錯誤修正的處理方式不同；它們會新增至多個版本：
+ 最新版本的修補程式版本。在這裡，它為 4.1.4 版。
+ 先前次要版本的修補程式版本。在這裡，它為 3.2.5 版。
+ 最新版 1.x 版本的修補程式版本。在這裡，它為 1.5.7 版。

主要錯誤修正由 Amazon IVS 產品團隊定義。典型範例包括重要的安全更新以及客戶所需的其他精選修正。

**備註：**在上面的範例中，發布的版本在不跳過任何數字的情況下遞增 (例如，從 4.1.3 到 4.1.4)。實際上，一個或多個修補程式編號可能會保持在內部並且不需要發行，因此發行的版本可能會從 4.1.3 增加到 4.1.6。