概覽
當使用Brightcove Native SDK for tvOS構建Apple TV應用程序時,您將獲得一組播放控件,以允許用戶瀏覽視頻內容,更改視頻的縱橫比,獲取視頻信息以及管理字幕和音頻設置。
Brightcove Native SDK for tvOS提供的控件包括:
- 進度條也可以顯示時鐘時間
- 視頻信息,字幕和音頻的頂部標籤欄
- 能夠在頂部標籤欄中添加自己的自定義視圖和控件
用戶所使用的控件和手勢與AVKit界面中的控件和手勢相似,因此它們非常熟悉。
使用Brightcove服務器端廣告插入(SSAI),用戶將在廣告播放期間看到自定義外觀。
Native SDK 的使用方法詳見適用於 tvOS 的 Brightcove Player SDK 概述文檔。
支援的版本
Apple TV UI控件可用於以下版本:
裝置作業系統版本
tvOS 9+
原生 SDK 版本
適用於iOS版本6.3.0+的Brightcove本機SDK
Siri 遙控器
Siri Remote允許您控制Apple TV。以下是一些可以使用它的方法:
- 讓Siri查找您想要觀看的內容。
- 使用觸摸表面在屏幕上移動,滑動,突出顯示和選擇項目。
- 按下控制按鈕可快速播放/暫停內容,調節音量並導航至主屏幕和菜單屏幕。
有關詳細信息,請參閱 Apple 的將 Siri Remote 與 Apple TV 搭配使用文檔。
播放控制
播放是通過Apple Siri Remote上的手勢和按鈕按下來控制的。以下是您可以與應用一起使用的一些操作。如需詳細資訊,請參閱下列內容:
進度列
輕按一下Apple Siri Remote觸控板將顯示/隱藏進度條。暫停播放時,左右平移將在視頻中前後導航。
若要進行擦洗,用戶可以單擊並按住,然後向左或向右平移以在視頻中快進或快退。
在播放視頻時,用戶可以雙擊Siri Remote觸控板的左四分之一以向後跳10秒,或者雙擊觸控板的右四分之一以向前跳10秒。
視頻寬高比
雙擊Apple Siri Remote觸控板將循環顯示三種標準視頻寬高比:
- 對寬高比表示尊重的信箱(顯示完整視頻)
- 尊重寬高比的全屏(視頻可能會被裁剪)
- 拉伸視圖以適合全屏(忽略寬高比)
頂部標籤欄
在Apple Siri Remote觸控板上向下滑動將顯示頂部菜單,並隱藏進度視圖。一旦可見,向上滑動將隱藏頂部菜單。
標籤欄具有以下默認項目:
- 資訊
- 字幕
- 音訊
您可以修改與每個標籤欄項目關聯的文本標籤,也可以在標籤欄中創建自己的自定義視圖。
資訊
選擇信息頂部菜單項顯示與當前加載的視頻相關的標題、描述和長度。這些數據是從Playback API中視頻的元數據中檢索到的,但是您可以在視頻加載時設置自己的文本。
字幕
選擇字幕頂部菜單項顯示用於顯示與視頻關聯的字幕的選項。在這裡,您可以管理在播放過程中顯示的字幕。
音訊
選擇聲音的頂部菜單項顯示視頻播放期間可用的音頻選項。
自訂
使用適用於tvOS的Brightcove Native SDK,您可以在選項卡欄中輕鬆添加自己的視圖。您的視圖可以包含所需的任何標準UIKit視圖或控件。
使用 SSAI 投放廣告
除了內容播放之外,我們還在使用Brightcove服務器端廣告插入(SSAI)時添加了廣告模式。此模式包括以下功能:
- 能夠防止用戶清理過去的廣告
- 顯示有關廣告休息時間和剩餘廣告的反饋
範例
要體驗Apple TV控件並查看如何創建自定義選項卡欄項目視圖,請查看以下代碼示例:
直播/直播DVR
與Apple TV應用程序一起使用時,適用於tvOS的Brightcove本機SDK支持實時和DVR實時流。DVR live使用戶能夠執行以下操作:
- 使用進度條尋找過去的時光
- 跳回到當前直播時刻,以實時觀看內容
實施播放
要從Apple TV應用程序播放實時或實時DVR流,請執行以下操作:
- 開始於基本的 Apple TV 示例代碼 .在 Xcode 中打開項目並打開視圖控制器.swift文件。
-
在裡面
createTVPlayerView()
函數,設置playerType
要么live
或者liveDVR
.playerView = BCOVTVPlayerView(options: options) if (playerView != nil) { playerView!.frame = self.videoContainerView.bounds playerView!.playerType = BCOVTVPlayerType.liveDVR; self.videoContainerView.addSubview(playerView!) }
- 找到
viewDidLoad()
功能。 - 對
createSampleTabBarItemView()
函數是可選的,它向您展示瞭如何在選項卡欄中創建自定義視圖。對於此示例,我們將對該函數的調用進行註釋。 - 評論對
requestContentFromPlaybackService()
功能。 -
在裡面
viewDidLoad()
函數,在右括號之前,添加代碼以執行以下操作:override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view, typically from a nib. createTVPlayerView() // createSampleTabBarItemView() // Create and configure the playback controller playbackController.delegate = self playbackController.isAutoAdvance = true playbackController.isAutoPlay = true // Link the playback controller to the Player View playerView?.playbackController = playbackController // requestContentFromPlaybackService() // live stream let url = URL(string: "your live stream url") let video: BCOVVideo = BCOVVideo(hlsSourceURL:url ) self.playbackController.setVideos([video] as NSArray) }
- 為直播或直播DVR流定義URL字符串。
- 創建一個
BCOVVideo
使用上一步中的實時或實時 DVR 流 URL 對象。 - 打電話給
setVideos()
功能將您的直播流添加到playbackController
的播放隊列,設置為自動開始播放。
實時流指示器
Native SDK for tvOS所提供的進度條不會在實時流中填寫。進度條下方的指示器將通知用戶何時直播和暫停直播:
實時DVR進度欄
進度條下方的指示器將通知用戶何時直播和暫停。
在實時觀看直播時,進度條將被完全填充。在流中尋找上一個時間將類似於以下內容: