2017-01-09 2 views
-1

Ich habe Youtube Data API und Google Ads in mein aktuelles Projekt integriert. Alles funktioniert gut, das Video wird nicht fortgesetzt, nachdem die InterstitialAd ordnungsgemäß im Vollbildmodus geladen wurde.Video fortsetzen, nachdem InterstitialAd mit Youtube Player geladen wurde

Wenn ich

verwenden
player.setPlayerStyle(YouTubePlayer.PlayerStyle.CHROMELESS); 

dann gibt es keine Möglichkeit, Video wieder zu spielen, wenn Anzeigen geladen.

Wenn ich

player.setPlayerStyle(YouTubePlayer.PlayerStyle.DEFAULT); 

dann nach Anzeigen geladen i Pause-Taste manuell in you tube Spieler für Spiel-Video ausgelöst haben. Mein Zweck ist es, Video nach InterstitialAd erfolgreich geladen ohne Interaktion mit Youtubeplayer Kontrolle wieder aufzunehmen.

Hier ist mein Code für 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(); 
    } 
} 

// Initialisierung für Youtube-Player

@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(); 
} 

Ich habe auch manuell initialisieren YoutubePlayer und Last Video in onAdClosed() und onAdLoaded() Methoden ausprobiert, aber keiner von sie sind gearbeitet.

So erweiterte Hilfe wäre willkommen!

+2

können Sie versuchen, Video-Zeit in 'onAdLoaded' zu speichern und dann das Video von gleichen Zeit spielen in' onAdClosed' hoffe, es hilft –

+0

ich schon dieses Ding – Piyush

+0

So möchten Sie Video anzuhalten versucht haben, wenn Interstitial-Anzeigen zeigt Und wenn der Nutzer die Anzeige manuell schließt, möchten Sie fortfahren? habe ich recht? @Piyush –

Antwort

0

Ich hatte ein ähnliches Problem. Ich habe eine Schaltfläche, die die Anzeige zeigt oder den YouTube-Player (you_player) spielt.

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

In Ihrer Anzeige Listener statt Anruf playvideo() auf onAdClosed Methode, tun nur die Anforderung für RequestNewInterstitial():

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

     RequestNewInterstitial(); 
    } 
}); 

onResume() für diese Aktivität wird nach onAdClosed werden rufen () und du kannst dort dein PlayVideo() aufrufen.

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

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