適用於 Android 版本 8.0.0 的本機 SDK

在本主題中,您將了解 Brightcove Native SDK for Android 版本 8.0.0 提供的新功能。

概覽

適用於 Android 的 Brightcove Native SDK 在新的主要版本中可用,帶來了重要的架構更改和播放增強功能,包括:

  • 安卓 13 兼容性
  • 支持純音頻內容
  • 媒體風格通知,帶有來自通知欄和鎖屏的可自定義播放控件
  • 支持持續播放的持續前台服務
  • 改進加載播放列表和預緩衝媒體以獲得更流暢的最終用戶體驗

純音頻內容

適用於 Android 的 Brightcove Native SDK 支持純音頻播放和豐富的播放控件。即使主機應用程序在後台,音頻播放也會繼續播放,讓最終用戶更好地控制他們的聆聽體驗。對音頻播放的支持已與當前的適用於 Android API 的本機 SDK 集成,以確保向後兼容 Brightcove 的所有功能。

有關實現的詳細信息,請參閱 僅使用本機 SDK 的音頻 文檔。

SDK 變更

在此版本的 Android Native SDK 中,添加了以下類以支持與後台播放、ExoPlayer 和媒體樣式通知的持續集成:

  • MediaPlayback<Player>
  • BrightcoveNotification
  • MediaPlaybackService

媒體播放<播放器>

隨著 Native SDK for Android 8.0.0 版本的變化,Brightcove 將播放業務邏輯從ViewActivity .這個業務邏輯現在存在於新的MediaPlayback類,使媒體能夠持續超越Activity生命週期使用ForegroundService .播放狀態在通知及其相應的視圖之間共享(當應用程序位於前台時)。

媒體播放
媒體播放

Brightcove 在利用 ExoPlayer 的內部播放列表支持方面做出了重大改進。以前,為加載到 SDK 中的每個媒體項創建一個新的 ExoPlayer 實例。

現在,媒體播放增強了預緩衝MediaSource對於 ExoPlayer。這提高了性能並採用了 ExoPlayer 的Player.Listener發出重要的播放狀態。

支持前台和後台播放將合併一個FOREGROUND_SERVICE允許你的Android清單應用構建過程中的文件。此權限是 SDK v8.0.0 的要求。

Brightcove通知

用戶可以使用操作按鈕從通知和鎖定屏幕與播放器交互。默認情況下,通知包括播放、暫停、下一個和上一個操作按鈕。

您可以通過檢索通知實例並設置config .

BrightcoveExoPlayerVideoView player = findViewById(R.id.player_view);
PlaybackNotification.Config config = new PlaybackNotification.Config(this)
  .setUsePlayPauseActions(true)
  .setUseNextAction(false)
  .setUsePreviousAction(false)
  .setUseFastForwardAction(true)
  .setUseRewindAction(true);
player.getPlayback().getNotification().setConfig(config);

下表顯示了操作按鈕的默認值和說明:

方法名稱 預設值 描述
usePlayPauseActions True 設置是否使用播放和暫停動作
useRewindAction True 設置是否使用倒帶動作
useRewindActionInCompatView False 如果useRewindAction為真,設置是否在緊湊視圖(包括鎖屏通知)中也使用倒回動作;否則什麼都不做
useFastForwardAction True 設置是否使用快進動作
useFastForwardActionInCompactView False 如果useFastForwardAction為真,設置快進動作是否也用於壓縮視圖(包括鎖屏通知);否則什麼都不做
usePreviousAction True 是否使用之前的動作
usePrevioiusActionInCompatMode False 如果usePreviousAction為真,設置之前的動作是否也用於壓縮視圖(包括鎖屏通知);否則什麼都不做
useNextAction True 是否使用下一個動作
useNextActionInCompactView False 如果useNextAction為真,設置下一個動作是否也用於壓縮視圖(包括鎖屏通知);否則什麼都不做
useStopAction False 設置是否使用停止動作

通知元數據

默認情況下,通知使用資產的元數據並創建一個隱含的PendingIntent重新創建您的活動。如果您需要進一步控制通知中顯示的元數據,您可以實現MediaDescriptionAdapter :

new PlaybackNotification.Config(this)
  .setAdapter(new PlaybackNotification.MediaDescriptionAdapter() {
    @Override
    public CharSequence getCurrentContentTitle(
            MediaPlayback playback
    ) {
        // TODO: return the current content title
    }

    @Override
    public Bitmap getCurrentLargeIcon(
            MediaPlayback playback,
            BitmapCallback callback
    ) {
        // TODO: return the bitmap for currently playing item
    }

    @Nullable
    @Override
    public PendingIntent createCurrentContentIntent(
            MediaPlayback<?> playback
    ) {
        // TODO: return your custom PendingIntent
    }

    @Nullable
    @Override
    public CharSequence getCurrentContentText(
            MediaPlayback<?> playback
    ) {
        // TODO: return the current content text
    }

    @Nullable
    @Override
    public CharSequence getCurrentSubText(
            MediaPlayback<?> playback
    ) {
        // TODO: return the current sub-text.
    }
  }
);

媒體播放服務

Native SDK for Android 支持專為媒體播放而設計的通知。播放音頻資產時的默認播放器行為是啟動一個新的 ForegroundService ,並帶有媒體控件的持續播放通知。媒體控件顯示在“快速設置”面板下方和鎖定屏幕上:

媒體控件位於鎖定屏幕上和“快速設置”面板下方:

媒體控制
媒體控制

當主機應用程序在後台時,通知允許用戶查看和控製播放。Native SDK 自動處理:

  • 加載專輯插圖和元數據
  • 操作按鈕(播放/暫停、下一首、上一首、快進、倒帶和停止)
  • 活動生命週期事件

您可以使用自定義通知樣式和媒體控件PlaybackNotification.Config班級。