(以下內容均翻譯自英文版文件,最新資訊及內容敬請切換至英文語系參考原文)
目錄
播放器初始化/非初始化和加載媒體
播放控制
設置播放器參數
取得播放器參數
設置事件監聽器/回調函式
初始化
- 初始化一個播放器實例。
UniPlayer.Builder([$MediaConfig]).build(): UniPlayer
- 參數
$MediaConfig =
{
val source: List<Source>,
val title: String,
val description: String,
val imageUrl: String,
val startTimeMs: Int,
val thumbnailSeekingUrl: String,
var contentType: ContentType,
var defaultMediaSourceType: String,
var defaultQuality: Int,
var seekableOption: SeekableOption,
var adTagParameters: Map<String, String>,
var playWhenReady: Boolean,
val sharedUrl: String,
val features: List<Feature>
}
非初始化
- 非初始化/銷毀一個已初始化/已建立的播放器。
player.release(): Unit
通過配置加載媒體源
- 在播放器中設置媒體源的配置。
player.load([$MediaConfig]): Unit
- 參數
$MediaConfig =
{
val source: List<Source>,
val title: String,
val description: String,
val imageUrl: String,
val startTimeMs: Int,
val thumbnailSeekingUrl: String,
var contentType: ContentType,
var defaultMediaSourceType: String,
var defaultQuality: Int,
var seekableOption: SeekableOption,
var adTagParameters: Map<String, String>,
var playWhenReady: Boolean,
val sharedUrl: String,
val features: List<Feature>
}
取得媒體配置
- 取得設定在播放器中的媒體配置數據。
player.getCurrentMediaConfig(): MediaConfig
- 參數:
$MediaConfig =
{
val source: List<Source>,
val title: String,
val description: String,
val imageUrl: String,
val startTimeMs: Int,
val thumbnailSeekingUrl: String,
var contentType: ContentType,
var defaultMediaSourceType: String,
var defaultQuality: Int,
var seekableOption: SeekableOption,
var adTagParameters: Map<String, String>,
var playWhenReady: Boolean,
val sharedUrl: String,
val features: List<Feature>
}
播放
- 開始播放。
player.play(): Unit
暫停
- 暫停播放。
player.pause(): Unit
正在播放
- 取得播放狀態。
player.isPlaying(): Boolean
取得當前時間
- 取得當前的播放位置。
player.getPosition(): Long
取得總時長
- 取得播放的總時長。
player.getDuration(): Long
取得緩衝時間
- 取得在播放過程中的當前緩衝時間
player.getBufferedPosition(): Long
跳轉
- 通過特定的時間戳記以設定播放位置。
player.seek(millisecond: long): Unit
快轉
- 通過特定的時間戳記以快轉播放。
player.forward(millisecond: long): Unit
倒帶
- 通過特定的時間戳記以倒帶播放。
player.rewind(millisecond: long): Unit
取得音量
- 取得當前的播放音量值。
player.getVolume(): Float
取得畫質
- 在播放過程中取得所有畫質。
player.getQualities(): List<Quality>
- 參數:
data class Quality {
val resolution: Resolution(width, height),
val bitrate: Int,
val frameRate: Float
}
取得當前的畫質
- 取得目前的播放畫質。
player.getCurrentQuality(): Quality
- 參數:
data class Quality {
val resolution: Resolution(width, height),
val bitrate: Int,
val frameRate: Float
}
設定畫質
- 設定播放影片的畫質。
設定成特定畫質
player.setQuality(height: Int?): Unit
設定成自動適應畫質
player.setQuality(null): Unit
設定音量
- 設定當前播放音量值。
player.setVolume(float): Unit
靜音
- 將播放音量靜音。
player.mute(): Unit
取消靜音
- 取消播放音量的靜音。
player.unmute(): Unit
取得音軌
- 取得播放的所有音軌。
player.getAudioTracks(): List<AudioTrack>
- 參數:
data class AudioTrack {
val language: String
}
取得當前音軌
- 取得當前播放的音軌。
player.getCurrentAudioTrack(): AudioTrack
- 參數:
data class AudioTrack {
val language: String
}
設定音軌
- 設定播放的特定音訊軌。
player.setAudioTrack(language: String): Unit
取得字幕
- 取得播放的所有字幕。
player.getSubtitles(): List<Subtitle>
- 參數
data class Subtitle {
val language: String
}
取得當前字幕
- 取得當前播放的字幕。
player.getCurrentSubtitle(): Subtitle
- 參數
data class Subtitle {
val language: String
}
設定字幕
- 设置或停用播放影片的播放字幕。
設定特定字幕
player.setSubtitle(Subtitle): Unit
- 參數
data class Subtitle {
val language: String
}
停用顯示字幕
player.setSubtitle("off"): Unit
取得當前速度
- 取得當前的播放速度值。
player.getCurrentPlaybackSpeed(): Float
設定速度
- 設定目前的播放速度值。
// return true if setting success; false if illegal speed setting (less than 0.0f)
player.setPlaybackSpeed(speed: Float): Boolean
播放 / 錯誤事件的回調監聽器
- 監聽播放過程中發生的播放回調事件。該方法提供了函數以回調和監聽器用於取得播放器的狀態。例如,在取得緩衝狀態後,可以取得其優先的圖示。
播放事件監聽器
player.addStateEventListener(object: StateEventListener {
override fun onPlayerStateChanged(playerState) {
// do something
}
})
- 參數
playerState = IDLE, READY, BUFFERING, ENDED
錯誤事件監聽器
player.addErrorEventListener(object: ErrorEventListener {
override fun onUniError(errorEvent: UniErrorEvent): Boolean
// do something
}
})
- 參數
UniErrorEvent = Exception defined in Java/Kotlin
播放紀錄事件回調
- 通過這種方法可以取得紀錄資訊,然後再整合到紀錄服務中。
playLogger = object : PlayLogger {
override fun logEvent(eventName: String, properties: Map<String, Any>) {
// do something
}
}