微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

YouTube停止以画中画模式播放视频

如何解决YouTube停止以画中画模式播放视频

YouTube视频在正常屏幕上播放。但是,当我切换到画中画模式时。它会毫无错误地停止播放。

不确定以下代码段出了什么问题:

    class YouTubeVideoActivity : YouTubeBaseActivity(),YouTubePlayer.OnInitializedListener {

    var isInPipMode = true

    val TAG = "YouTubeVideoActivity"
    private var player: YouTubePlayer? = null

    private val youTubeView: YouTubePlayerView by lazy {
        findViewById<YouTubePlayerView>(R.id.youtube_view)
    }

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_you_tube_video)
        youTubeView.initialize(API_KEY,this)
    }

    override fun onUserLeaveHint() {
        enterInPictureAndPictureMode()
    }

    override fun onPause() {
        super.onPause()

        Log.d(TAG,"OnPause:$isInPipMode")
    }

    override fun onPictureInPictureModeChanged(isInPictureInPictureMode: Boolean,newConfig: Configuration?) {
        super.onPictureInPictureModeChanged(isInPictureInPictureMode,newConfig)
        isInPipMode = isInPictureInPictureMode


    }

    override fun onInitializationSuccess(p0: YouTubePlayer.Provider?,player: YouTubePlayer?,wasRestored: Boolean) {
        if (player == null) return

        this.player = player

        player.setFullscreen(false)
        player.setPlayerStatechangelistener(youTubeStatechangelistener)
        player.setPlaybackEventListener(youTubePlayBackListener)

        if (!wasRestored) {
            player.loadVideo("pr-4GbR4DpQ")
            // player.setPlayerStyle(YouTubePlayer.PlayerStyle.DEFAULT)
        }
    }

    override fun onInitializationFailure(provider: YouTubePlayer.Provider?,errorReason: YouTubeInitializationResult?) {
        if (errorReason == null || provider == null) return

        if (errorReason.isUserRecoverableError) {
            errorReason.getErrorDialog(this,1).show()
        } else {
            val errorMessage = errorReason.toString()
            Toast.makeText(this,errorMessage,Toast.LENGTH_LONG).show()
        }
    }


    private fun getYouTubePlayerProvider(): YouTubePlayer.Provider? {
        return findViewById<View>(R.id.youtube_view) as YouTubePlayerView
    }

    override fun onActivityResult(requestCode: Int,resultCode: Int,data: Intent?) {
        if (requestCode == 1) {
            // Retry initialization if user performed a recovery action
            getYouTubePlayerProvider()?.initialize(API_KEY,this)
        }
    }

    private fun enterInPictureAndPictureMode() {
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
            val supportsPIP = packageManager.hasSystemFeature(PackageManager.FEATURE_PICTURE_IN_PICTURE)

            if (supportsPIP) {
                val ratio = Rational(200,110)
                val params = PictureInPictureParams.Builder()
                        .setAspectRatio(ratio)
                        .build()

                enterPictureInPictureMode(params)
            }
        }
    }
}

如果有人知道WhatsApp如何做到这一点或如何正确实现这一点。

预先感谢!

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。