蘋果電視使用者介面控制項與適用於 TVOS 的原生 SDK

在本主題中,您將了解適用於 tvOS 的布萊特灣播放器 SDK 所提供的播放控制項。

概覽

當使用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查找您想要觀看的內容。
  • 使用觸摸表面在屏幕上移動,滑動,突出顯示和選擇項目。
  • 按下控制按鈕可快速播放/暫停內容,調節音量並導航至主屏幕和菜單屏幕。
Siri 遙控器
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)時添加了廣告模式。此模式包括以下功能:

  • 能夠防止用戶清理過去的廣告
  • 顯示有關廣告休息時間和剩餘廣告的反饋
SAI 廣告
SAI 廣告

範例

要體驗Apple TV控件並查看如何創建自定義選項卡欄項目視圖,請查看以下代碼示例:

直播/直播DVR

與Apple TV應用程序一起使用時,適用於tvOS的Brightcove本機SDK支持實時和DVR實時流。DVR live使用戶能夠執行以下操作:

  • 使用進度條尋找過去的時光
  • 跳回到當前直播時刻,以實時觀看內容

實施播放

要從Apple TV應用程序播放實時或實時DVR流,請執行以下操作:

  1. 開始於基本的 Apple TV 示例代碼 .在 Xcode 中打開項目並打開視圖控制器.swift文件。
  2. 在裡面createTVPlayerView()函數,設置playerType要么live或者liveDVR .

    playerView = BCOVTVPlayerView(options: options)
    if (playerView != nil) {
    playerView!.frame = self.videoContainerView.bounds
    playerView!.playerType = BCOVTVPlayerType.liveDVR;
    self.videoContainerView.addSubview(playerView!)
    }
  3. 找到viewDidLoad()功能。
  4. createSampleTabBarItemView()函數是可選的,它向您展示瞭如何在選項卡欄中創建自定義視圖。對於此示例,我們將對該函數的調用進行註釋。
  5. 評論對requestContentFromPlaybackService()功能。
  6. 在裡面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進度欄

進度條下方的指示器將通知用戶何時直播和暫停。

在實時觀看直播時,進度條將被完全填充。在流中尋找上一個時間將類似於以下內容:

即時 DVR 串流
即時 DVR 串流