在InterstitialAd加载Youtube Player后恢复视频

时间:2017-01-09 11:31:37

标签: android ads youtube-data-api

我已将Youtube Data API和Google广告整合到我当前的项目中。所有正常工作都希望在全屏正确加载InterstitialAd后视频无法恢复。

如果我使用

player.setPlayerStyle(YouTubePlayer.PlayerStyle.CHROMELESS);

如果加载广告,则无法再次播放视频。

如果我使用

player.setPlayerStyle(YouTubePlayer.PlayerStyle.DEFAULT);

然后在广告加载后我已经手动触发了暂停按钮,以便在你的管播放器中播放视频。 我的目的是在InterstitialAd成功加载后恢复视频,而不与Youtubeplayer控件互动。

以下是onCreate()的代码:

   try {
        youTubeView.initialize(Config.DEVELOPER_KEY, this);
    } catch (Exception e) {
        e.printStackTrace();
    }
    mAdMobInterstitialAd = new InterstitialAd(this);
    mAdMobInterstitialAd.setAdUnitId(getString(R.string.full_screen_id));
    requestNewInterstitial();
    mAdMobInterstitialAd.setAdListener(new AdListener() {
        public void onAdLoaded() {
            showInterstitialAd();
        }
        @Override
        public void onAdClosed() {
        }
    });

}

private void showInterstitialAd() {
    if (mAdMobInterstitialAd.isLoaded()) {
        mAdMobInterstitialAd.show();
    }
}

// Youtube播放器的初始化

 @Override
public void onInitializationSuccess(final YouTubePlayer.Provider provider,
                                    final YouTubePlayer player, boolean wasRestored) {
    this.you_player = player;
    player.addFullscreenControlFlag(YouTubePlayer.FULLSCREEN_FLAG_ALWAYS_FULLSCREEN_IN_LANDSCAPE);
    if (!wasRestored) {
        if (isOnline()) {
            if (player != null) {
                try {
                    player.cueVideo(VIDEO_ID);
                } catch (Exception e) {
                    provider.initialize(Config.DEVELOPER_KEY, this);
                }
            }
            player.setFullscreen(true);
            player.setPlayerStyle(YouTubePlayer.PlayerStyle.CHROMELESS);
        } else {
            Toast.makeText(YoutubePlayerActivity.this, "No Internet Connection", Toast.LENGTH_SHORT).show();
        }
    }
}

@Override
public void onDestroy() {
    if (you_player != null) {
        you_player.release();
    }
    super.onDestroy();
}

我还尝试初始化YoutubePlayer并手动加载onAdClosed()onAdLoaded()方法中的视频,但这些方法都不起作用。

如此高级的帮助将不胜感激!

1 个答案:

答案 0 :(得分:0)

我有类似的问题。我有一个显示广告或播放YouTube播放器的按钮(you_player)。

if (mInterstitialAd.isLoaded())
{
    mInterstitialAd.show();
}
else
{
    PlayVideo(); // Do something and call you_player.loadVideo(video_Id)
}

在您的广告监听器中,不要在onAdClosed方法上调用PlayVideo(),只需执行RequestNewInterstitial()的请求:

mInterstitialAd.setAdListener(new AdListener()
{
    @Override
    public void onAdClosed()
    {
        //PlayVideo();

        RequestNewInterstitial();
    }
});

此活动的onResume()将在onAdClosed()之后调用,您可以在那里调用PlayVideo()。

@Override
protected void onResume()
{
    super.onResume();

    if (your_player == null)
    {
       youTubeView.initialize(Config.DEVELOPER_KEY, this);
    }
    else
    {
        PlayVideo();
    }
}