安卓电视中的ExoPlayer播放视频时出现竖屏模式而非横屏模式

6

我们正在使用ExoPlayer在Android TV上播放m3u8文件(流媒体)。流媒体播放正常,但视频在竖屏模式下播放(即使视频是横向拍摄的)。 看起来这是Android TV方向而不是纵横比的问题。

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()

播放横屏视频,但是播放器控制栏被隐藏了,并且只播放最低质量的视频。请帮助我们解决此问题。
2个回答

1

MP4视频的元数据包含一个名为Rotation=90°的属性,但ExoPlayer会忽略它。要修复它,您需要将此Java函数注入到您的代码中:

void onVideoSizeChanged(int width, 
                        int height, 
                        int unappliedRotationDegrees, // 90° or 270°
                      float pixelWidthHeightRatio);

这使得使用TextureView的应用程序可以通过适当地调用TextureView.setTransform轻松应用旋转。请注意,在Lollypop+上,unappliedRotationDegrees将始终等于0。

您可以在GitHub的MediaCodecVideoTrackRenderer页面的第74行找到此函数。

如果上述方法对您无效,则可以在GitHub的旋转问题#91帖子中找到另一种解决方法。


0
据我所知,ExoPlayer将根据TextureView的大小生成其大小。因此,请尝试通过编程方式调整您的TextureView的大小。
playerView.setResizeMode(AspectRatioFrameLayout.RESIZE_MODE_FILL);

还可以尝试使用编程方式调整播放器的大小

mPlayer.setVideoScalingMode(C.VIDEO_SCALING_MODE_SCALE_TO_FIT_WITH_CROPPING);

希望这能有所帮助。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接