【问题标题】:Resume video after InterstitialAd loaded with Youtube Player使用 Youtube 播放器加载 InterstitialAd 后恢复视频
【发布时间】:2017-01-09 11:31:36
【问题描述】:

我在当前项目中集成了Youtube Data API 和 Google Ads。一切正常,预计在全屏正确加载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() 方法中加载视频,但它们都不起作用。

非常感谢您的高级帮助!

【问题讨论】:

  • 您可以尝试在onAdLoaded 中保存视频时间,然后在onAdClosed 中播放同一时间的视频,希望对您有所帮助
  • 这个东西我已经试过了
  • 所以你想在插页式广告显示时暂停视频,当用户手动关闭广告然后你想恢复?我对吗? @Piyush
  • 我不想手动恢复视频。广告关闭后应该会自动恢复
  • 那么在showInterstitialAd() 中调用player.pause() 和在onAdClosed() 中调用player.play() 对您不起作用? @Piyush

标签: android ads youtube-data-api


【解决方案1】:

我遇到了类似的问题。我有一个显示广告或播放 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();
    }
}

【讨论】:

    猜你喜欢
    • 2017-03-30
    • 2013-06-05
    • 2018-09-02
    • 1970-01-01
    • 2014-05-01
    • 2014-04-29
    • 1970-01-01
    • 2012-04-02
    • 1970-01-01
    相关资源
    最近更新 更多