Omk*_*hav 6 kotlin m3u8 android-tv exoplayer
我们正在使用ExoPlayer在Android TV上播放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)
}
}
Run Code Online (Sandbox Code Playgroud)
评论这些行:
mPlayerAdapter = LeanbackPlayerAdapter(activity, mPlayer, UPDATE_DELAY)
mPlayerGlue = VideoPlayerGlue(activity!!, mPlayerAdapter!!)
mPlayerGlue!!.host = VideoSupportFragmentGlueHost(this)
mPlayerGlue!!.playWhenPrepared()
Run Code Online (Sandbox Code Playgroud)
以横向播放视频,但播放器控件被隐藏,只播放视频质量最低的视频.请帮助我们.
视频的元数据MP4包含一个名为 的属性Rotation=90\xc2\xb0,但它被ExoPlayer. 要修复它,您需要将此 Java 函数注入到您的代码中:
void onVideoSizeChanged(int width, \n int height, \n int unappliedRotationDegrees, // 90\xc2\xb0 or 270\xc2\xb0\n float pixelWidthHeightRatio);\nRun Code Online (Sandbox Code Playgroud)\n\n这允许应用程序通过TextureView对 进行适当的调用来轻松应用旋转TextureView.setTransform。请注意,在 Lollypop+ 上,unappliedRotationDegrees它始终等于 0。
您可以在 GitHub 的MediaCodecVideoTrackRenderer页面的第 74 行找到此函数。
\n\n\n\n如果上述方法对您不起作用,您可以在GitHub 上的Rotation Issue #91帖子中找到另一种补救方法。
\n
| 归档时间: |
|
| 查看次数: |
507 次 |
| 最近记录: |