保利威文档中心

幫助中心

3-视频播放

更新時間:2024-09-04 16:17:16

1.播放器

播放器的對外核心介面為 IPLVMediaPlayer,該介面對外的實作類別有 PLVMediaPlayerPLVVideoView,差異如下:

  • PLVMediaPlayer:播放器核心類別,提供播放器的完整功能,但不包含渲染的介面
  • PLVVideoView:封裝了 PLVMediaPlayer,預設添加了渲染的介面,可以當作一個 View 來使用

2.初始化

您可以透過建構方法直接建立播放器實例,例如:

new PLVMediaPlayer();
new PLVVideoView(context);

另外,由於 PLVVideoView 繼承自 FrameLayout,因此您也可以在佈局檔案中直接宣告 PLVVideoView,隨後在程式碼中透過 findViewById() 取得實例。

3.設定資料來源

透過呼叫介面 setMediaResource() 設定資料來源

/**
 * 设置播放资源
 */
fun setMediaResource(mediaResource: PLVMediaResource)

在呼叫該介面後,預設會自動開始播放,您也可以透過播放參數配置來控制不自動啟動播放

4.播放參數配置

透過呼叫介面 setPlayerOption() 設定播放參數

/**
 * 设置播放参数
 */
fun setPlayerOption(options: List<PLVMediaPlayerOption>)

PLVMediaPlayerOptionEnum 類別中提供了一些常用的播放參數,您可以直接引用其中的常數,例如:

// 开启精准seek的参数
PLVMediaPlayerOptionEnum.ENABLE_ACCURATE_SEEK.value("1")

對於重複設定的參數,新設定的參數會覆蓋舊的參數;如果想要清空參數,可以在 value 欄位中傳入空字串

5.播放控制

播放器提供了一系列的播放控制介面,例如:

/**
 * 开始播放
 */
fun start()

/**
 * 暂停播放
 */
fun pause()

/**
 * 跳转播放进度到指定位置
 * @param position 指定位置,单位:毫秒
 */
fun seek(position: Long)

更多控制操作可以參考 IPLVMediaPlayer 以及它的父介面 IPLVMediaPlayerControl

6.回呼

播放器的狀態、事件回呼可以透過回呼註冊中心進行監聽,包括:

  • IPLVMediaPlayerBusinessListenerRegistry:播放器業務回呼註冊中心
  • IPLVMediaPlayerEventListenerRegistry:播放器事件回呼註冊中心
  • IPLVMediaPlayerStateListenerRegistry:播放器狀態回呼註冊中心

以監聽播放/暫停狀態為例,可以透過以下方式進行監聽:

State<PLVMediaPlayerPlayingState> playingState = mediaPlayer.getStateListenerRegistry().getPlayingState();
MutableObserver<PLVMediaPlayerPlayingState> observer = playingState.observe(new Function1<PLVMediaPlayerPlayingState, Unit>() {
    @Override
    public Unit invoke(PLVMediaPlayerPlayingState playingState) {
        // 处理逻辑
        return null;
    }
});

// 在不需要继续监听时,可以取消监听
observer.dispose();

7.銷毀

播放結束後不再使用播放器時,應銷毀播放器:

mediaPlayer.destroy();
联系客服,在线咨询