2014-03-05 3 views
8

Mit dem Android Youtube API möchte ich zwei Videos in meiner App Haupttätigkeit spielen ohne Verwendung von Fragment haben wir das gleiche Problem mit dieser Multiple Youtube players in one activity hat aber noch keine akzeptablen Antworten bitte Hilf uns.Android Youtube-API spielen zwei oder mehr Youtube-Spieler in einer Hauptaktivität

activity_main.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:orientation="vertical" 
> 

<com.google.android.youtube.player.YouTubePlayerView 
    android:id="@+id/video1" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" /> 

<com.google.android.youtube.player.YouTubePlayerView 
    android:id="@+id/video2" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" /> 

MainActivity.java 

    package com.apps.you; 
    import android.os.Bundle; 
import com.google.android.youtube.player.YouTubeBaseActivity; 
import com.google.android.youtube.player.YouTubeInitializationResult; 
import com.google.android.youtube.player.YouTubePlayer; 
import com.google.android.youtube.player.YouTubePlayer.Provider; 
import com.google.android.youtube.player.YouTubePlayerView; 

public class MainActivity extends YouTubeBaseActivity { 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

    ((YouTubePlayerView) findViewById(R.id.video1)).initialize("AIzaSyBmb9Yqu9vEBXjNOrBmZZ__6s12RH5RSv0", new YouTubePlayer.OnInitializedListener() { 
     @Override 
     public void onInitializationSuccess(Provider provider1, YouTubePlayer player1, boolean restored1) { 
      if (!restored1) { 
      player1.cueVideo("Daa38ruXHxE"); 
      } 
     } 

     @Override 
     public void onInitializationFailure(Provider provider1, YouTubeInitializationResult result1) { 
     } 
    }); 

    ((YouTubePlayerView) findViewById(R.id.video2)).initialize("AIzaSyBmb9Yqu9vEBXjNOrBmZZ__6s12RH5RSv0", new YouTubePlayer.OnInitializedListener() { 

     public void onInitializationSuccess(Provider provider, YouTubePlayer player, boolean restored) { 

      if (!restored) { 
     player.loadVideo("ctQAPiojDKE"); 
      } 
     } 


     public void onInitializationFailure(Provider provider, YouTubeInitializationResult result) { 
     } 
    }); 
} 
} 

das Problem dabei nur ein Video am Ende spielte, wurde video1 Initialisierung durch die video2 Initialisierung sie die gleiche

nennen overrriden
.initialize(new YouTubePlayer.OnInitializedListener(){}); 

von diesem:

((YouTubePlayerView) findViewById(R.id.video1)).initialize(new 
    YouTubePlayer.OnInitializedListener(){}); 

((YouTubePlayerView) findViewById(R.id.video2)).initialize(new 
    YouTubePlayer.OnInitializedListener(){}); 
+0

Haben Sie dieses Problem gelöst? –

+0

Eliran Tutia, soweit ich mich erinnere, kann ich nur ein Video pro Aktivität abspielen und initialisieren, sogar mit Fragmenten. – Cristiana214

Antwort

0

Vielleicht triviale Antwort. Aber ist es für Ihren Anwendungsfall akzeptabel, init des zweiten Youtube-Players vom erfolgreichen Callback des ersten zu rufen? Hast du es versucht? Es sollte eine angemessene Problemumgehung sein.

Aber es könnte ein Haken sein, dass YouTubeBaseActivity ich nachgeschlagen Dokumentation erweitert, und es sieht aus wie es kann nur eine YouTubeView pro Aktivität wegen der Bindung zwischen ihnen sein.

Also kann ich einen anderen Ratschlag anbieten, stattdessen YouTubePlayerFragment oder SupportYouTubePlayerFragment verwenden. Es sollte einen eigenen Lebenszyklus haben (nicht getestet).

+0

versucht, init des zweiten youtube players von Erfolg Rückruf des ersten zu nennen. funktioniert nicht wegen der Einschränkung = ( – Dan

+0

mit youtubeplayerfragments erlauben es auch nicht zu arbeiten – Dan

0

Um zwei oder mehr Youtube-Player bei einer Aktivität zu erreichen, müssen Sie YouTubeThumbnailView (Es ist ein ImageView) verwenden, um eine Liste von Vorschaubildern anzuzeigen. Wenn der Benutzer den Daumen berührt, werden Sie zum Vollbild-Videoplayer umgeleitet.

Check out this project.

Verwandte Themen