在本主題中,您會發現一個程式碼片段的集合,您可能會發現這些程式碼片段可以在開發 SDK 時作為參考。有關更詳細的解決方案,請參閱iOS 播放器示例 .
目錄
廣告
分析
內容安全性 (DRM)
提示點
播放清單
樣式
AirPlay的自定義控件
如果您使用Brightcove PlayerUI 控件 , 你都準備好了。AirPlay功能是開箱即用的,允許用戶使用Apple TV將視頻流傳輸到高清顯示器。
如果使用自定義控件,則可以按照以下步驟操作:
-
了解有關 AirPlay 的信息Apple 的 AirPlay 開發者文檔 .
-
使用播放控制器的
allowsExternalPlayback
設置 AVPlayer 的屬性allowsExternalPlayback
財產: -
設置AirPlay路由器控件並處理其選擇。有關詳細信息,請參閱Apple 的 AirPlay 概述文檔。
參考
有關詳細信息,請參閱 BCOVPlaybackController 文檔。
自定義隱藏式字幕按鈕
這BCOVPlayerUI 示例代碼向您展示瞭如何在使用適用於 iOS 的 Native SDK 時自定義 Brightcove 播放器。有關詳細信息,請參閱自定義 PlayerUI 控件本機 SDK 參考文檔的部分。
要使用PlayerUI自定義隱藏式字幕按鈕,請按照以下步驟操作:
-
開始於基本視頻播放應用程序 .
-
替換為策略密鑰,帳戶ID和視頻ID的值。從您的帳戶中選擇一個具有文本軌道的視頻。
-
使用標準的VOD佈局設置播放器視圖:
-
這
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 與您的應用程式整合,請依照下列步驟操
- 查看 Google 的文檔以將分析添加到您的 iOS 應用程序 .
-
您可以使用以下一種方法使用Google Analytics(分析)來通過Google的Firebase SDK跟踪視頻播放:
限制比特率
您無法控制 HLS 清單中的哪個源(再現)被AVPlayer
, 但您可以在播放時設置比特率上限。這樣可以防止播放器使用比特率超過指定比特率的源(繼承)。
設置preferredPeakBitRate
到給定的網絡帶寬消耗的所需限制(以每秒位數為單位)AVPlayerItem
.
使用以下聲明之一:
循環播放視頻
在某些情況下,您可能希望視頻自動重播。為此,您可以獲取“視頻結尾”生命週期事件,尋找開始並再次播放。
此代碼假定您已使用以下方法將playbackController的委託設置為該對象:
管理播放列表中的視頻
管理視頻播放列表的一種方法是將視頻對象存儲在表中。當用戶從表格中選擇視頻時,表格行將包含視頻對象。
以下是其工作原理的概述:
-
從您的帳戶中檢索播放列表。
-
重新初始化用於在當前播放列表中存儲與視頻相關的信息的容器。
-
選擇表視圖時,該行的索引用於創建一個新的
videoDictionary
.接下來,向字典詢問視頻。如果視頻不為空,則將視頻加載到playbackController
.
要使用播放列表,您可以將播放列表存儲在另一個對象(例如表格)中。基於用戶交互,您可以導航對象的索引並選擇適當的視頻。
媒體進度值
在媒體播放期間,報告給Player SDK進度委託方法的值可能包括負無窮大的初始值和正無窮大的最終值。這些值在處理前貼片廣告和後貼片廣告時使用。
如果這些值對您不重要或乾擾您自己的進度跟踪,則可以使用以下條件語句輕鬆忽略它們:
參考
有關詳細信息,請參閱 BCOVPlaybackController 文檔。
以編程方式修改字幕
您可以在播放過程中隨時設置字幕,在Ready
已收到事件。為此,您可以使用 BCOVPlaybackControllerDelegate 。
以下是將字幕語言設置為西班牙語的示例:
使用播放 API 進行分頁
從播放 API 擷取您的視訊雲端內容時,您可以為播放清單實作分頁。
若要逐頁瀏覽播放清單中的一組影片,請使用下列要求 URL 參數:
此範例會傳回以播放清單中第 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 廣告提示點所需的值。
下面的代碼偵聽您的提示點並顯示一條消息:
參考
如需詳細資訊,請參閱下列內容:
- BCOV視頻 文檔
- BCOVCuePoint 文檔
卸下播放器
在某些情況下,您想刪除播放器和視圖。
取消分配擁有 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)。有關詳細信息,請參閱此計算器討論 .
為一個BCOVPlaybackSession
,您的代碼將類似於:
為 360° 影片設定 VR 護目鏡模式
播放 360° 影片時,使用者可以選擇控制列上的 360 視訊按鈕,切換至 VR 護目鏡模式。在開始播放之前,您可能還需要以編程方式執行此操作。您可以通過更新BCOVPlaybackController
協議的viewProjection
屬性如下:
更改背景顏色
在縱向模式下播放視頻時,您可能會在播放器的頂部和下方看到黑色邊框。播放器視圖是屏幕的大小,但是視頻僅佔播放器視圖中心的一小部分。視頻周圍的可見部分是播放器層的背景。
這個是正常的AVPlayer
行為。它會縮小視頻以使其適合播放器層,其餘部分則是播放器層背景。
您可以使用以下代碼更改播放器圖層背景:
將背景色設置為白色應如下所示:
