Exoplayer 对于 AAC(ADTS/ADTS),AMR 默认不支持时长以及定位解析,如果有需求,需要自行开启恒定比特率定位:
DefaultExtractorsFactory().setConstantBitrateSeekingEnabled(true)
应用于构建函数第二个参数:
SimpleExoPlayer.Builder(context, DefaultExtractorsFactory().setConstantBitrateSeekingEnabled(true))
.build()
使用时通过 Listener 在 STATE_READY 状态进行获取,默认为 ms :
var playerListener: Player.Listener = object : Player.Listener {
override fun onPlaybackStateChanged(state: Int) {
if (state == ExoPlayer.STATE_READY) {
val duration = mPlayer?.duration ?: 0L
val length = if (duration < 0) {
0L
} else {
duration / 1000
}
listener?.onAudioLength(length)
} else {
if (state == Player.STATE_ENDED) {
listener?.onComplete()
}
}
}
}参考:
https://exoplayer.dev/progressive.html#enabling-constant-bitrate-seeking
本站由以下主机服务商提供服务支持:
0条评论