鴻蒙OS 視頻播放開發(fā)指導(dǎo)

2020-09-18 14:11 更新

場景介紹

視頻播放包括播放控制、播放設(shè)置和播放查詢,如播放的開始/停止、播放速度設(shè)置和是否循環(huán)播放等。

接口說明

接口名 功能描述
Player(Context context) 創(chuàng)建Player實例。
setSource(Source source) 設(shè)置媒體源。
prepare() 準備播放。
play() 開始播放。
pause() 暫停播放。
stop() 停止播放。
rewindTo(long microseconds) 拖拽播放。
setVolume(float volume) 調(diào)節(jié)播放音量。
setVideoSurface(Surface surface) 設(shè)置視頻播放的窗口。
enableSingleLooping(boolean looping) 設(shè)置為單曲循環(huán)。
isSingleLooping() 檢查是否單曲循環(huán)播放。
isNowPlaying() 檢查是否播放。
getCurrentTime() 獲取當(dāng)前播放位置。
getDuration() 獲取媒體文件總時長。
getVideoWidth() 獲取視頻寬度。
getVideoHeight() 獲取視頻高度。
setPlaybackSpeed(float speed) 設(shè)置播放速度。
getPlaybackSpeed() 獲取播放速度。
setAudioStreamType(int type) 設(shè)置音頻類型。
getAudioStreamType() 獲取音頻類型。
setNextPlayer(Player next) 設(shè)置當(dāng)前播放結(jié)束后的下一個播放器。
reset() 重置播放器。
release() 釋放播放資源。
setPlayerCallback(IPlayerCallback callback) 注冊回調(diào),接收播放器的事件通知或異常通知。

開發(fā)步驟

  1. 創(chuàng)建 Player 實例,可調(diào)用 Player(Context context),創(chuàng)建本地播放器,用于在本設(shè)備播放。

  1. 構(gòu)造數(shù)據(jù)源對象,并調(diào)用 Player 實例的 setSource(Source source)方法,設(shè)置媒體源,代碼示例如下:

   Player impl = new Player(context);
   File file = new File("/path/test_audio.aac");
   in = new FileInputStream(file);
   FileDescriptor fd = in.getFD(); // 從輸入流獲取FD對象
   Source source = new Source(fd);
   impl.setSource(source);

  1. 調(diào)用 prepare(),準備播放。

  1. (可選)構(gòu)造 IPlayerCallback,IPlayerCallback 需要實現(xiàn) onPlayBackComplete 和 onError(int errorType, int errorCode) 兩個方法,實現(xiàn)播放完成和播放異常時做相應(yīng)的操作。代碼示例如下:

   @Override
   public void onPlayBackComplete() {
       HiLog.info("[PlayerCallback]", "onPlayBackComplete");

    
       if (impl != null) {
           impl.stop();
           impl = null;
       }
   }

    
   @Override
   public void onError(int errorType, int errorCode) {
       HiLog.error("[PlayerCallback]", "onError");
   }

  1. 調(diào)用 play() 方法,開始播放。

  1. (可選)調(diào)用 pause() 方法和 resume() 方法,可以實現(xiàn)暫停和恢復(fù)播放。

  1. (可選)調(diào)用 rewindTo(long microseconds) 方法實現(xiàn)播放中的拖拽功能。

  1. (可選)調(diào)用 getDuration() 方法和 getCurrentTime() 方法,可以實現(xiàn)獲取總播放時長以及當(dāng)前播放位置功能。

  1. 調(diào)用 stop() 方法停止播放。

  1. 播放結(jié)束后,調(diào)用 release() 釋放資源。

分享

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號