我的应用程序有用于播放YouTube视频的活动A(使用YouTubePlayerFragment)此活动A有自己的按钮B来控制播放。当活动加载并正在播放视频时,我可以使用b按钮控制播放。然后我按Home键。当我从最近的任务菜单恢复活动A时,按钮B不再工作。我只能从它自己的播放按钮(在YouTubePlayerFragment中)播放视频。
当前我在调用onInitializationSuccess
时存储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(this@KActivityPlayVideo, 1).show()
} else {
Toast.makeText(this@KActivityPlayVideo,
"Failed to initialize video, please try again!",
Toast.LENGTH_LONG).show()
}
}
}
按钮b使用这个youtubeplayer实例根据请求调用play/pause。但当活动a转到后台并继续时,这就不再起作用了。有人能告诉我这里有什么问题吗?非常感谢你。
最佳答案
我希望这对你有帮助。
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()
}
}