2016-12-02 14 views
4

私のアプリケーションにはYoutubeビデオを再生するためのアクティビティA(YoutubePlayerFragmentを使用)があります。このアクティビティAには再生を制御するボタンBがあります。アクティビティが読み込まれてビデオを再生しているときに、Bボタンを使用して再生を制御できます。それからホームボタンを押します。最近のタスクメニューからアクティビティAを再開すると、ボタンBはもう機能しません。自分のPlayボタン(YoutubePlayerFragment内)からのみビデオを再生できます。アクティビティがバックグラウンドから再開した後、プログラムでYoutubePlayerを再生/一時停止する

private val onInitializedListener = object : YouTubePlayer.OnInitializedListener { 
    override fun onInitializationSuccess(provider: YouTubePlayer.Provider, youTubePlayer: YouTubePlayer, wasRestored: Boolean) { 
     Log.d(DEBUG_TAG, "YoutubePlayer - onInitializationSuccess") 
     if (!wasRestored) { 
      mYoutubePlayer = youTubePlayer 
      mYoutubePlayer!!.setPlayerStateChangeListener(playerStateChangeListener) 
      mYoutubePlayer!!.setPlaybackEventListener(mPlaybackEventListener) 
      mYoutubePlayer!!.setShowFullscreenButton(false) 
      mYoutubePlayer!!.loadVideo(mCurrentVideoId) 
     } else { 
      Log.d(DEBUG_TAG, "Restored from a previously saved state") 
     } 
    } 

    override fun onInitializationFailure(provider: YouTubePlayer.Provider, youTubeInitializationResult: YouTubeInitializationResult) { 
     if (youTubeInitializationResult.isUserRecoverableError) { 
      youTubeInitializationResult.getErrorDialog([email protected], 1).show() 
     } else { 
      Toast.makeText([email protected], 
        "Failed to initialize video, please try again!", 
        Toast.LENGTH_LONG).show() 
     } 
    } 
} 

ボタンBは、要求に応じて再生/一時停止を呼び出すために、このYoutubePlayerインスタンスを使用しています:onInitializationSuccessが呼び出されたとき は現在、私はYoutubePlayerインスタンスを格納します。しかし、アクティビティAがバックグラウンドになって再開すると、これはもう機能しません。誰も私にここで問題が何かを教えてもらえますか?どうもありがとうございました。

+1

こんにちは!あなたが解決策を見つけましたか?同じ問題で私はstruglingですか? – thunder413

答えて

-1

私はこれがあなたを助けてくれることを願っています。

private final class MyPlaybackEventListener implements YouTubePlayer.PlaybackEventListener { 

    @Override 
    public void onPlaying() { 
     // Called when playback starts, either due to user action or call to play(). 

    } 

    @Override 
    public void onPaused() { 
     // Called when playback is paused, either due to user action or call to pause(). 

    } 

    @Override 
    public void onStopped() { 
     // Called when playback stops for a reason other than being paused. 

    } 

    @Override 
    public void onBuffering(boolean b) { 
     // Called when buffering starts or ends. 
    } 

    @Override 
    public void onSeekTo(int i) { 
     // Called when a jump in playback position occurs, either 
     // due to user scrubbing or call to seekRelativeMillis() or seekToMillis() 
    } 
} 
+0

私はPlaybackEventListenerにも登録します。アクティビティの再開後、 'onStopped'が自動的に呼び出されます。ドキュメントによると、これは、「ビデオの終了や再生エラーなど、一時停止以外の理由で再生が停止したときに呼び出されます。」私はここで何が間違っているのか分かりません。私はすでにこのリスナーを登録しているので、これを追加することは何も解決しません。 –

関連する問題