已知問題:Brightcove本機播放器SDK

在本主題中,您將瞭解與 Brightcove 原生播放程式 SDK 相關的已知問題。

一般

大字幕文件

錄製為直播事件一部分的字幕有時會生成帶有以下提示的字幕文件:

00:00:03.760-> 00:00:03.960
這個

00:00:03.960-> 00:00:04.160
這個程序

00:00:04.160-> 00:00:04.400
該程序將

00:00:04.400-> 00:00:04.600
該程序將

00:00:04.600-> 00:00:04.840
這個程序將被標題

這種字幕樣式會產生字幕效果,但可能會產生意外的副作用,即產生大小高達幾兆字節的字幕文件。在播放器中選擇了這些字幕後,播放器將嘗試下載整個文件以進行分析和顯示(無法流式傳輸VTT字幕)。這可能會導致播放器出現性能問題,包括OutOfMemory錯誤。

Brightcove建議您將這些標題重新格式化為更少的行:

00:00:03.760-> 00:00:04.840
這個程序將被標題

第三方框架

Brightcove不測試或不支持將Brightcove Native SDK與Xamarin,React Native和Titanium等第三方開發框架集成。請與您的框架提供商聯繫以獲得集成支持。您可能會遇到以下一些問題:

  • 在Titanium框架上使用適用於Android的Brightcove Native SDK時,DRM內容可能會出現播放錯誤。這是因為Titanium框架會覆蓋默認框架Java.net.ResponseCache 有自己的TiResponseCache

使用模擬器

無論您使用的是Android Studio模擬器還是Xcode模擬器來測試視頻播放,請注意,模擬器不能準確表示實際設備的性能。雖然您可以在開發期間使用模擬器進行初始測試,但最好使用真實設備以獲得準確的結果。

尺寸很小的視頻

尺寸很小(小於50像素)的視頻片段無法在iOS或Android(在SDK播放器或其他方式)上播放

適用於安卓的原生 SDK

360°影片

  • 如果您不使用BrightcovePlayer課堂上,您的360°視頻可以播放,但是在暫停並恢復播放時,該應用可能會崩潰。要了解有關使用此類的更多信息,請參見了解BrightcovePlayer類文件。
  • 旋轉設備後,您可能會遇到視頻漂移。該問題與設備陀螺儀的校準方式有關,這可能會影響性能。它與特定的設備品牌和型號無關,而是與設備上安裝的運動傳感器硬件相關聯。較新的Android操作系統具有更完善的過濾器算法,可以糾正此問題。一個簡單的解決方法是關閉設備,然後將其放置在平坦,穩定的表面上並將其打開。

安卓 12

  • 對於 Android 12,在某些設備(例如 Google Pixel 手機)上,將播放器移動到任務列表而不是將其完全置於後台不會暫停播放,也不會發出activityPaused事件。此外,將玩家從任務列表中置於前台不會發出activityResumed事件。Google 已針對此行為打開了一個錯誤。

字幕

  • 字幕支持存在一個已知限制,即播放器中顯示的 608/708 字幕沒有片段數據中可能存在的格式。計劃在 SDK 的未來更新中解決此問題。
  • In-manifest 和 608/708 Captions 不會在 Activity 生命週期事件之後自動顯示。

    當玩家在後台然後又回到前台時,可能會發生這種情況。顯示字幕的解決方法是從字幕菜單中再次選擇字幕。

  • 某些實時流編碼器(例如 Elemental)具有時間碼老化功能,可在播放器顯示屏上顯示當前流時間。此老化可以採用 608 格式,這會導致在流中沒有字幕時顯示字幕 (CC) 按鈕。目前沒有解決方法,但我們將為未來的 SDK 版本研究解決方案。

  • 本機 SDK 不支持 Chromecast 與 Brightcove Cast Receiver 應用程序排隊。

內容

  • 視頻和播放列表對像不是完全可打包的。

    對象必須完全 Parcelable 才能通過 Android Binder 傳輸。一個常見的例子是將對象添加到 Intent 以將其發送到另一個 Activity 或 Service,或者將其保存到 savedInstanceState Bundle。目前 Android SDK 中的 Video 和 Playlist 對像不是完全可打包的。

DRM

  • 在某些平台上的DRM層可能無法解密媒體內容。雖然不是該平台的明確問題,但測試表明此問題在 Nexus 類設備上更常發生。此問題不在Android SDK和ExoPlayer的範圍內,不能在那裡解決。

即時串流

  • Native SDK 不支持 DASH 直播,也不支持帶 HLS 直播的廣告。

離線播放

  • 要增加對設備鎖定時的下載支持(通過進入睡眠狀態或使用電源按鈕),請向您的計算機添加以下權限AndroidManifest.xml文件:
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
  • 使用Android 8.0及更高版本,可以在將應用程序移至後台時管理電源設置。如果設備與電源斷開連接,則可能導致下載過程停止。在大多數情況下,當應用重新回到前台時,下載將繼續。重要的是要注意電源管理可以是特定於操作系統和供應商的。因此,適用於Android的Brightcove Native SDK將不會嘗試管理或覆蓋與電源管理有關的設置。
  • 當將Widevine Modular與Android 8.0.0(在某些設備上為8.1.0)一起使用時,您可能會發現租賃許可證在購買時已經過期。這是Widevine模塊化CDM的一個已知問題,在Brightcove Android SDK或ExoPlayer中都無法解決。儘管對於使用Android 8.1.0的大多數設備而言,此問題無法重現,但對於使用Android 8.0.0或8.1.0的設備(確實存在此問題),則沒有解決方法。
  • 僅在Android 5.x設備上觀察到:通過調用以下方式釋放Widevine許可證時OfflineLicenseManager.releaseLicense 方法,一個MediaDrmStateException 引發錯誤。
  • 在裡面OfflinePlaybackSampleApp,有兩個Widevine許可證有效期。

    • absoluteExpiration是許可證的到期日期,開始播放下載的視頻
    • playDuration視頻可以播放多長時間

    什麼時候playDuration變得少於60秒,Widevine CDM會處理過期的許可證並拋出無法獲取關鍵請求錯誤。播放不會從此Widevine許可例外開始。

    使用適用於Android v6.1.0 +的Brightcove Native SDK,您可以嘗試調用AbstractOfflineCatalog.requestRentalLicense(Video, Date, long, EventListener)要么AbstractOfflineCatalog.requestPurchaseLicense(Video, EventListener)檢索新許可證。注意:設備必須在線才能獲取新許可證。

播放本機視訊

  • 如果嘗試播放存儲在應用程序資源文件夾(/ res / raw)中的MP4視頻,則會收到異常錯誤。解決方法是,如果要播放本地視頻,請將MP4視頻移動到應用程序資產文件夾。

具有 DRM 和清晰內容的播放列表

  • 使用適用於 Android v6.17.0 及更高版本的 Native SDK,Brightcove 已意識到播放列表中包含加密內容和明文內容的問題。當用戶在加密視頻播放過程中或播放後選擇清晰視頻時,SDK 將返回一個IllegalStateException .這是因為播放器不能使用加密的編解碼器來播放清晰的內容。

    目前,Brightcove 建議採用以下解決方法:為避免錯誤,您可以將播放器放在與播放列表視圖分開的 Activity 中。從播放列表中選擇一個新的視頻,無論是清晰的還是加密的,都需要銷毀現有的播放器 Activity 並創建一個新的播放器 Activity。此工作流程使用新的編解碼器資源創建一個新的 ExoPlayer 實例。

來源選擇

  • 如果您的影片同時具有網頁 VTT 字幕/字幕的 HTTP 和 HTTPS 來源,則安卓版本的原生 SDK 可能無法傳回 HTTPS 版本。Brightcove 意識到這種情況,並將在未來的版本中修復。

字幕

  • 如果您在Video Cloud Studio中為視頻分配了文本軌道,CC按鈕將不會出現在控制欄中,並且播放器也不會加載文本軌道。字段值字幕。解決方法是設置字段值隱藏字幕在Studio中分配文本軌道時。

  • 當字幕/音頻設置超出顯示完整列表所提供的空間時,該列表在Android TV上無法滾動。該列表在Android手機和平板電腦上可滾動。

適用於 iOS 的原生 SDK

  • 本機 SDK 不支持 Chromecast 與 Brightcove Cast Receiver 應用程序排隊。

即時串流

  • Native SDK 不支持帶有 HLS Live 流的廣告。

離線播放

  • 在iOS 12中,將kBCOVOfflineVideoManagerDisplayNameKey多字節字符的字段值可能會導致下載錯誤。這是因為多字節字符被編碼為更長的字符串值,並且iOS將字符串長度限制為255個字節。這個問題已經報告給蘋果。
  • 使用iOS 12,didProgress當您的應用在下載時從後台恢復到前台時,事件可能會停止觸發。您會注意到下載狀態不再更新。這個問題已經報告給蘋果。
  • 當連續兩次嘗試播放同一脫機視頻時,用戶可能會遇到意外的網絡活動。的AVPlayer可能會切換為播放視頻的在線版本。一個錯誤報告已提交給Apple。有關解決方法的步驟,請參見兩次播放相同的脫機視頻參考文檔部分。
  • 如果您的應用程序的目標是 iOS 11.0-11.2,我們不建議同時下載,因為暫停和恢復行為在多次同時下載時不可靠。這個問題已經在 iOS 11.3 中修復。