我们使用ExoPlayer在安卓电视上播放m3u8文件(流)。视频流工作正常,但视频以纵向模式播放(即使视频是在横向拍摄的)。看起来是android电视的方向问题,而不是宽高比的问题。
private fun initializePlayer() {
if(mPlayer == null) {
playerView = activity!!.findViewById<SimpleExoPlayerView>(R.id.texture_view)
// playerView!!.setControllerVisibilityListener(this)
playerView!!.requestFocus()
val bandwidthMeter = DefaultBandwidthMeter()
val videoTrackSelectionFactory = AdaptiveTrackSelection.Factory(bandwidthMeter)
mTrackSelector = DefaultTrackSelector(videoTrackSelectionFactory)
mPlayer = ExoPlayerFactory.newSimpleInstance(activity, mTrackSelector)
playerView!!.player= mPlayer
mPlayerAdapter = LeanbackPlayerAdapter(activity, mPlayer, UPDATE_DELAY)
mPlayerGlue = VideoPlayerGlue(activity!!, mPlayerAdapter!!)
mPlayerGlue!!.host = VideoSupportFragmentGlueHost(this)
mPlayerGlue!!.playWhenPrepared()
play(s1)
}
}
注释这些行:
mPlayerAdapter = LeanbackPlayerAdapter(activity, mPlayer, UPDATE_DELAY)
mPlayerGlue = VideoPlayerGlue(activity!!, mPlayerAdapter!!)
mPlayerGlue!!.host = VideoSupportFragmentGlueHost(this)
mPlayerGlue!!.playWhenPrepared()
在横向播放视频,但播放器控件是隐藏的,它只播放最低质量的视频。请帮我们解决这个问题。
发布于 2018-10-10 10:59:42
据我所知,exoplayer
将根据texture view
大小生成它的大小。因此,尝试通过以下方式以编程方式调整texture view
大小
playerView.setResizeMode(AspectRatioFrameLayout.RESIZE_MODE_FILL);
并尝试以编程方式调整播放器的大小。
mPlayer.setVideoScalingMode(C.VIDEO_SCALING_MODE_SCALE_TO_FIT_WITH_CROPPING);
希望这能有所帮助。
https://stackoverflow.com/questions/51947763
复制相似问题