首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >安卓电视的ExoPlayer播放视频是纵向模式,而不是横向模式

安卓电视的ExoPlayer播放视频是纵向模式,而不是横向模式
EN

Stack Overflow用户
提问于 2018-08-21 19:30:56
回答 1查看 1.2K关注 0票数 6

我们使用ExoPlayer在安卓电视上播放m3u8文件(流)。视频流工作正常,但视频以纵向模式播放(即使视频是在横向拍摄的)。看起来是android电视的方向问题,而不是宽高比的问题。

代码语言:javascript
复制
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)
    }
}

注释这些行:

代码语言:javascript
复制
mPlayerAdapter = LeanbackPlayerAdapter(activity, mPlayer, UPDATE_DELAY)
mPlayerGlue = VideoPlayerGlue(activity!!, mPlayerAdapter!!)
mPlayerGlue!!.host = VideoSupportFragmentGlueHost(this)
mPlayerGlue!!.playWhenPrepared()

在横向播放视频,但播放器控件是隐藏的,它只播放最低质量的视频。请帮我们解决这个问题。

EN

回答 1

Stack Overflow用户

发布于 2018-10-10 10:59:42

据我所知,exoplayer将根据texture view大小生成它的大小。因此,尝试通过以下方式以编程方式调整texture view大小

代码语言:javascript
复制
playerView.setResizeMode(AspectRatioFrameLayout.RESIZE_MODE_FILL);

并尝试以编程方式调整播放器的大小。

代码语言:javascript
复制
mPlayer.setVideoScalingMode(C.VIDEO_SCALING_MODE_SCALE_TO_FIT_WITH_CROPPING);

希望这能有所帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51947763

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档