避免在YouTubePlayerFragment init上暂停其他音频应用

时间:2017-10-24 11:58:07

标签: android kotlin android-youtube-api android-audiomanager

我正在开发YouTubePlayerFragment集成。 在YouTubePlayerFragment中初始化YouTubePlayer时,它从另一个应用程序获取音频,该特定应用程序停止播放音频,即。 PlayMusic。

由于用户未触摸我应用的YouTube播放器中的播放按钮,因此无法从其他应用获取音频。那么如何避免这样的问题并让另一个应用程序播放音频?

这是我的片段代码,用Kotlin编写。

class MyVideoFragment : YouTubePlayerFragment() {
    lateinit var mPlayer: YouTubePlayer

    companion object {

    fun newInstance(url: String): TutorialVideoFragment {

        val v = TutorialVideoFragment()
        val b = Bundle()
        b.putString("url", url)
        v.init()
        v.arguments = b
        return v
    }
}


private fun init() {
    initialize(DEVELOPER_KEY,
            object : YouTubePlayer.OnInitializedListener {

                override fun onInitializationSuccess(arg0: YouTubePlayer.Provider,
                                                     player: YouTubePlayer, wasRestored: Boolean) {
                    if (!wasRestored) {
                        player.cueVideo(arguments.getString("url"))
                        if (player.isPlaying) {
                            player.pause();
                        }

                        player.setShowFullscreenButton(true)
                        mPlayer = player
                    }
                }

                override fun onInitializationFailure(provider: YouTubePlayer.Provider,
                                                     errorReason: YouTubeInitializationResult) {
                    if (errorReason.isUserRecoverableError) {
                        //                            errorReason.getErrorDialog(getActivity(), RECOVERY_DIALOG_REQUEST).show();
                    } else {
                        val errorMessage = String.format(
                                getString(R.string.error_player), errorReason.toString())
                        toast(errorMessage)
                    }
                }
            })
    }
}

1 个答案:

答案 0 :(得分:2)

我遇到了同样的问题。 setManageAudioFocus(false)是您所需要的。 您可以通过执行onInitializationSuccessplayer.setManageAudioFocus(false)内禁用音频焦点的自动增益,但请记住您需要手动管理音频焦点。您可以阅读有关管理音频焦点here

的内容
相关问题