使用 iOS 版本原生 SDK 的程式碼片段

在本主題中,您會發現一個程式碼片段的集合,您可能會發現這些程式碼片段可以在開發 SDK 時作為參考。有關更詳細的解決方案,請參閱iOS 播放器示例 .

目錄

廣告

分析

字幕

內容安全性 (DRM)

提示點

播放

播放清單

樣式

AirPlay的自定義控件

如果您使用Brightcove PlayerUI 控件 , 你都準備好了。AirPlay功能是開箱即用的,允許用戶使用Apple TV將視頻流傳輸到高清顯示器。

如果使用自定義控件,則可以按照以下步驟操作:

  1. 了解有關 AirPlay 的信息Apple 的 AirPlay 開發者文檔 .

  2. 使用播放控制器的allowsExternalPlayback 設置 AVPlayer 的屬性allowsExternalPlayback 財產:

  3. 設置AirPlay路由器控件並處理其選擇。有關詳細信息,請參閱Apple 的 AirPlay 概述文檔。

參考

有關詳細信息,請參閱 BCOVPlaybackController 文檔。

自定義隱藏式字幕按鈕

BCOVPlayerUI 示例代碼向您展示瞭如何在使用適用於 iOS 的 Native SDK 時自定義 Brightcove 播放器。有關詳細信息,請參閱自定義 PlayerUI 控件本機 SDK 參考文檔的部分。

要使用PlayerUI自定義隱藏式字幕按鈕,請按照以下步驟操作:

  1. 開始於基本視頻播放應用程序 .

  2. 替換為策略密鑰,帳戶ID和視頻ID的值。從您的帳戶中選擇一個具有文本軌道的視頻。

  3. 使用標準的VOD佈局設置播放器視圖:

  4. closedCaptionButton被聲明為BCOVPUIButton , 這是一個子類UIButton並添加了三種額外的自定義方法。每當您自定義BCOVPlayerUI控件時,都應在可用的地方使用Native Player API。您的自定義代碼應類似於以下內容:

在外部屏幕上顯示FairPlay內容

使用AV適配器和HDMI電纜將外部顯示器連接到iOS設備時,默認行為是鏡像iOS屏幕。例外情況是當您使用受 FairPlay 保護的視頻時,Apple 會阻止其鏡像 ( WWDC 2015,第 502 節 ).

要顯示受FairPlay保護的視頻,請設置通過Brightcove播放控制器公開的AVPlayer屬性,以允許FairPlay視頻在外部顯示器上播放。視頻以全屏模式播放。這是設置這些屬性的示例:

參考

有關詳細信息,請參閱 BCOVPlaybackController 文檔。

Google Analytics

如果您使用 Brightcove 播放器和目錄類別,系統會自動收集影片分析,並顯示在您的視訊雲端分析模組中。對於其他指標,您可以將谷歌分析添加到您的應用程序。

若要將 Google Analytics 與您的應用程式整合,請依照下列步驟操

  1. 查看 Google 的文檔以將分析添加到您的 iOS 應用程序 .
  2. 您可以使用以下一種方法使用Google Analytics(分析)來通過Google的Firebase SDK跟踪視頻播放:

 

限制比特率

您無法控制 HLS 清單中的哪個源(再現)被AVPlayer , 但您可以在播放時設置比特率上限。這樣可以防止播放器使用比特率超過指定比特率的源(繼承)。

設置preferredPeakBitRate 到給定的網絡帶寬消耗的所需限制(以每秒位數為單位)AVPlayerItem .

使用以下聲明之一:

循環播放視頻

在某些情況下,您可能希望視頻自動重播。為此,您可以獲取“視頻結尾”生命週期事件,尋找開始並再次播放。

此代碼假定您已使用以下方法將playbackController的委託設置為該對象:

管理播放列表中的視頻

管理視頻播放列表的一種方法是將視頻對象存儲在表中。當用戶從表格中選擇視頻時,表格行將包含視頻對象。

以下是其工作原理的概述:

  1. 從您的帳戶中檢索播放列表。

  2. 重新初始化用於在當前播放列表中存儲與視頻相關的信息的容器。

  3. 選擇表視圖時,該行的索引用於創建一個新的videoDictionary .接下來,向字典詢問視頻。如果視頻不為空,則將視頻加載到playbackController .

要使用播放列表,您可以將播放列表存儲在另一個對象(例如表格)中。基於用戶交互,您可以導航對象的索引並選擇適當的視頻。

媒體進度值

在媒體播放期間,報告給Player SDK進度委託方法的值可能包括負無窮大的初始值和正無窮大的最終值。這些值在處理前貼片廣告和後貼片廣告時使用。

如果這些值對您不重要或乾擾您自己的進度跟踪,則可以使用以下條件語句輕鬆忽略它們:

參考

有關詳細信息,請參閱 BCOVPlaybackController 文檔。

以編程方式修改字幕

您可以在播放過程中隨時設置字幕,在Ready已收到事件。為此,您可以使用 BCOVPlaybackControllerDelegate

以下是將字幕語言設置為西班牙語的示例:

使用播放 API 進行分頁

從播放 API 擷取您的視訊雲端內容時,您可以為播放清單實作分頁。

若要逐頁瀏覽播放清單中的一組影片,請使用下列要求 URL 參數:

  • limit -定義要從Playback API返回的視頻數
  • offset -設置要從Playback API播放列表中跳過的視頻數

此範例會傳回以播放清單中第 10 個視訊開頭的 6 個視訊:

以編程方式添加提示點

Video Cloud 客戶可以使用 Video Cloud Studio 向視頻添加提示點,如向視頻添加提示點文檔。

您還可以通過編程將提示點添加到視頻中。以下代碼將季度間隔提示點添加到從Playback API返回的視頻中:

 

請注意,值your cue point type 可以是您想要的任何字符串值,只要您不使用任何iOS插件 .有關詳細信息,請參閱BCOVCuePoint 協議參考文檔。

如果您在 IMA 插件中使用提示點,請在VAST 和 VMAP/服務器端廣告規則 IMA 插件的 Native SDK for iOS 註釋部分。這IMA 示例應用顯示 IMA 廣告提示點所需的值。

下面的代碼偵聽您的提示點並顯示一條消息:

參考

如需詳細資訊,請參閱下列內容:

卸下播放器

在某些情況下,您想刪除播放器和視圖。

取消分配擁有 a 所有權的視圖控制器BCOVPlaybackController也將取消分配播放控制器。為此,從其父視圖中刪除播放器視圖並將其播放控制器指針設置為nil .

這是一個代碼示例:

設置音頻行為

音訊工作階段會處理應用程式層級的音訊行為。您可以從數個音訊工作階段類別和設定中選擇,以自訂應用程式的音訊行為。

為您的應用程式選擇最佳的音訊工作階段類別。有關詳細信息,請查看 Apple 的文檔:

基礎樣本

對於我們的基本示例,我們使用AVAudioSessionCategoryPlayback .即使螢幕鎖定且「鈴聲/靜音」開關設定為靜音,也會播放音訊。為了簡單起見,我們將代碼放在 App Delegate 中。

與其他音頻混合

當您的應用程序中的音頻被靜音時,您可能希望允許聽到來自其他應用程序的音頻。為此,您可以配置AVAudioSession在有權訪問您當前的視圖控制器中AVPlayer .

有關詳細信息,請參閱 mixWithOthers 類別選項。

設定播放速率

要控製播放速率,您可以設置rate 上的財產AVPlayer 在會話中公開的類。

默認情況下,只能以固定間隔(0.50、0.67、1.0、1.25、1.50和2.0)設置播放速率。通過設置audioTimePitch算法,您可以使用更精細的速率值(如 1.7)。有關詳細信息,請參閱此計算器討論 .

avPlayerItem.audioTimePitchAlgorithm = AVAudioTimePitchAlgorithmVarispeed;

為一個BCOVPlaybackSession ,您的代碼將類似於:

 

為 360° 影片設定 VR 護目鏡模式

播放 360° 影片時,使用者可以選擇控制列上的 360 視訊按鈕,切換至 VR 護目鏡模式。在開始播放之前,您可能還需要以編程方式執行此操作。您可以通過更新BCOVPlaybackController 協議的viewProjection 屬性如下:

 

更改背景顏色

在縱向模式下播放視頻時,您可能會在播放器的頂部和下方看到黑色邊框。播放器視圖是屏幕的大小,但是視頻僅佔播放器視圖中心的一小部分。視頻周圍的可見部分是播放器層的背景。

這個是正常的AVPlayer 行為。它會縮小視頻以使其適合播放器層,其餘部分則是播放器層背景。

您可以使用以下代碼更改播放器圖層背景:

 

將背景色設置為白色應如下所示:

背景顏色
自定義背景色