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条评论