2012-02-18 2 views
10

Possiamo guardare video di youtube nell'app per Android? Voglio dire se abbiamo link a video su youtube, possiamo giocarci in VideoView o in un altro widget? Qualche idea al riguardo?Come incorporare e riprodurre un video di YouTube in Android

+0

Hai provato un google cerca almeno? Possibile duplicato di http://stackoverflow.com/a/5798922/782719 – GETah

+10

Non è necessario aprire il video in un'altra app. Voglio giocare nella mia app. – user1021984

+0

È molto semplice, abilita l'API di YouTube nella console di sviluppo, scarica il file jar di youtube player e includilo. Fai riferimento a questo esempio http://www.feelzdroid.com/2017/01/embed-youtube-video-player-android-app-example.html – Naruto

risposta

0

v'è un funzionario API di YouTube Player Android wich è possibile utilizzare. Questo è un po 'più complicato, ma funziona meglio di altre soluzioni che utilizzano webclients.

Per prima cosa è necessario registrare l'app nella console dell'API di Google. Questo è completamente gratuito fino a quando la tua app non richiederà più di 25k al mese (o qualcosa del genere). Ci sono completi e fantastici tutorial sotto il link. Spero che tu possa capirli. Altrimenti, chiedi! :)

4

In primo luogo si dovrebbe cercare di scaricare la libreria player di YouTube per Android dal link sottostante:

Youtube Android Player

È necessario prima installare in questo modo: Progetto -> menu: File> Struttura> Dipendenze Tab> Aggiungi -> biblioteca dipendenza

se non funziona, si prega di provare uno di questi due:

Aggiungi dipendenza della biblioteca all'interno delle dipendenze all'interno del file build.gradle della biblioteca ur utilizzando, e incolla la tua libreria in Librerie esterne.

O

è sufficiente accedere alla cartella libs all'interno della cartella app e incollare tutti i .jar ad esempio file di libreria là Ora il trucco qui è che ora andare all'interno del file settings.gradle ora aggiungere questa riga include ': app: libs 'after include': app 'Funzionerà sicuramente.

Poi, si dovrebbe avere un layout simile a questo:

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

E si può avere un'attività giocatore come questo:

import android.os.Bundle; 
import android.util.Log; 
import android.webkit.WebView; 
import android.webkit.WebViewClient; 
import android.widget.Toast; 
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.YouTubePlayerView; 
import com.google.api.client.http.HttpRequest; 
import com.google.api.client.http.HttpRequestInitializer; 
import com.google.api.client.http.javanet.NetHttpTransport; 
import com.google.api.client.json.jackson2.JacksonFactory; 
import com.google.api.services.youtube.YouTube; 
import java.io.IOException; 

public class YoutubeActivity extends YouTubeBaseActivity{ 

    private YouTubePlayerView playerView; 
    private YouTube youtube; 

    @Override 
    protected void onCreate(Bundle bundle) { 
     super.onCreate(bundle); 

     setContentView(R.layout.activity_youtube); 

     youtube = new YouTube.Builder(new NetHttpTransport(), 
       new JacksonFactory(), new HttpRequestInitializer() { 
      @Override 
      public void initialize(HttpRequest hr) throws IOException {} 
     }).setApplicationName(this.getString(R.string.app_name)).build(); 


     playerView = (YouTubePlayerView)findViewById(R.id.player_view); 
     playerView.initialize("Your API Key", new YouTubePlayer.OnInitializedListener() { 
      @Override 
      public void onInitializationSuccess(YouTubePlayer.Provider provider, YouTubePlayer youTubePlayer, boolean b) { 
       if(!b){ 
        String videoId = getIntent().getExtras().getString("videoID"); 
        youTubePlayer.cueVideo(videoId); 
       } 
      } 

      @Override 
      public void onInitializationFailure(YouTubePlayer.Provider provider, YouTubeInitializationResult youTubeInitializationResult) { 
       Toast.makeText(getApplicationContext(), getString(R.string.failed), Toast.LENGTH_LONG).show(); 
      } 
     }); 
    } 

} 
+2

questa dovrebbe essere la risposta accettata –

0

possibile integrare i video di YouTube utilizzando YouTube sdk

con YouTube SDK si può avere molte opzioni, mentre l'integrazione di un video

per più http://www.androidcoding.in/2017/12/17/android-play-youtube-video-play-youtube-video-app/

private final class StateChangeListener implements YouTubePlayer.PlayerStateChangeListener { 

@Override 
public void onLoading() { 
} 

@Override 
public void onLoaded(String s) { 
    } 

    @Override 
    public void onAdStarted() { 
    } 

    @Override 
    public void onVideoStarted() { 
    } 

    @Override 
    public void onVideoEnded() { 
    } 

    @Override 
    public void onError(YouTubePlayer.ErrorReason errorReason) { 
     } 
     }