28996


YoutTube Android Player API を利用して、 `YouTubePlayerFragment` を埋め込んだ Activity
を作っています。  
<https://developers.google.com/youtube/android/player/reference/com/google/android/youtube/player/YouTubePlayerFragment?hl=ja>

`YouTubePlayerFragment` を初期化する `initialize()` に渡した匿名クラスの中で
`YouTubePlayer.cueVideo()` を呼び出すと、バックグランドで再生している音楽やラジオなどが停止してしまいます。

`YouTubePlayer.loadVideo()`
ならば動画再生が始まってしまうので音楽が停止するべきだと思いますが、`YouTubePlayer.cueVideo()`
はプレイヤーの準備とサムネイルを用意するだけ、動画のローディングは行わないのでこの挙動は違和感を与えてしまうと感じました。

<https://developers.google.com/youtube/android/player/reference/com/google/android/youtube/player/YouTubePlayer?hl=ja>

これを回避する方法はないでしょうか。

[code]

    youtubePlayerFragment.initialize("apiKey", object: YouTubePlayer.OnInitializedListener {
        override fun onInitializationSuccess(provider: YouTubePlayer.Provider?, player: YouTubePlayer?, wasRestored: Boolean) {
            if (wasRestored) return
    
            player?.setPlayerStyle(YouTubePlayer.PlayerStyle.DEFAULT)
            player?.cueVideo("videoId") // ここでバックグラウンドの音楽などが停止する。
        }
    
        override fun onInitializationFailure(provider: YouTubePlayer.Provider?, error: YouTubeInitializationResult?) {
            // error handling
        }
    })
    
[/code]


CC BY-SA 3.0
2016-09-17T23:51:09.530
28959
2016-09-20T06:58:05.093
2016-09-18T02:44:12.867
5827
5827
question
android java kotlin
Android で YouTube の再生準備をするとバックグラウンドの音楽などが停止してしまう


  * [YouTubePlayer | YouTube Android Player API | Google Developers](https://developers.google.com/youtube/android/player/reference/com/google/android/youtube/player/YouTubePlayer#setManageAudioFocus\(boolean\))

にある `setManageAudioFocus` を `false`
にすることで、このアプリがオーディオフォーカスを自動処理しなくなる＝他のプレイヤーに関与しない、となると思います。(以下は、`setManageAudioFocus`
の説明)

> プレーヤーが、再生ライフサイクルの一部としてオーディオ フォーカスを処理するかどうかを指定します。
>
> true の場合、再生の開始および終了時に、プレーヤーはオーディオ フォーカスの要求および破棄を適宜実行します。また、オーディオ  
>  フォーカスを失った場合は再生を一時停止します。ダックした場合、プレーヤーは音量を下げます。
>
> オーディオ  
>
> フォーカスを処理する場合、オーディオ出力の変化によってノイズが多くなると、必要に応じてプレーヤーが一時停止になります（AudioManager.ACTION_AUDIO_BECOMING_NOISY  
>  を参照）。
>
> デフォルト値は true です。

ただしこの場合、マニュアルでオーディオフォーカスを制御する必要があります。あるいは `loadVideo()` の直前に
`setManageAudioFocus(true)` をすれば良いのかもしれませんが、実際に試してはいないです。


CC BY-SA 3.0
2016-09-20T06:58:05.093
28996
2016-09-20T06:58:05.093
15190
28959
answer