2015-11-19 6 views
1

Я новичок в этом веб-сайте, и до сих пор мне это очень помогло. Я создаю и приложение, которое содержит плейлист с youtube, пока он работает, но у меня есть только одно видео, и следующее видео будет отображаться только если вы нажмете на следующую кнопку, я хочу создать список всех видеороликов на этом список воспроизведения. В настоящее время использование java для android и xml, хотелось бы сохранить его таким образом, если это возможно. Спасибо.Как просмотреть список youtube определенного плейлиста?

мой код:

import android.drm.DrmStore; 
import android.os.Bundle; 
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.YouTubePlayer.ErrorReason; 
import com.google.android.youtube.player.YouTubePlayer.PlaybackEventListener; 
import com.google.android.youtube.player.YouTubePlayer.PlayerStateChangeListener; 
import com.google.android.youtube.player.YouTubePlayer.Provider; 
import com.google.android.youtube.player.YouTubePlayerView; 
import com.google.android.youtube.player.YouTubePlayer.OnFullscreenListener; 

public class ky extends YouTubeBaseActivity implements YouTubePlayer.OnInitializedListener { 
    public static final String API_KEY = "api"; 
    //http://youtu.be/<VIDEO_ID> 
    public static final String VIDEO_ID = "PLZeI1YOvEK7EK499BrkBl95VseODbMDa-"; 

    public void onFullscreen(boolean isFullscreen) { 
     if (isFullscreen) 
      playbackEventListener.onPlaying(); 
    } 


    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     /** attaching layout xml **/ 
     setContentView(R.layout.ky); 

     /** Initializing YouTube player view **/ 
     YouTubePlayerView youTubePlayerView = (YouTubePlayerView) findViewById(R.id.youtube_player); 
     youTubePlayerView.initialize(API_KEY, this); 
    } 

    @Override 
    public void onInitializationFailure(Provider provider, YouTubeInitializationResult result) { 
     Toast.makeText(this, "Failured to Initialize!", Toast.LENGTH_LONG).show(); 
    } 

    @Override 
    public void onInitializationSuccess(Provider provider, final YouTubePlayer player, boolean wasRestored) { 
     /** add listeners to YouTubePlayer instance **/ 
     player.setPlayerStateChangeListener(playerStateChangeListener); 
     player.setPlaybackEventListener(playbackEventListener); 
     player.setOnFullscreenListener(new OnFullscreenListener() { 
      @Override 
      public void onFullscreen(boolean b) { 
       if(b) 
        player.play(); 
       else 
        player.play(); 
      } 
     }); 


     /** Start buffering **/ 
     if (!wasRestored) { 

      player.loadPlaylist(VIDEO_ID); 


     } 
    } 


    private PlaybackEventListener playbackEventListener = new PlaybackEventListener() { 



     @Override 
     public void onBuffering(boolean arg0) { 
     } 

     @Override 
     public void onPaused() { 
     } 

     @Override 
     public void onPlaying() { 
     } 

     @Override 
     public void onSeekTo(int arg0) { 
     } 

     @Override 
     public void onStopped() { 
     } 

    }; 


    private PlayerStateChangeListener playerStateChangeListener = new PlayerStateChangeListener() { 

     @Override 
     public void onAdStarted() { 
     } 

     @Override 
     public void onError(ErrorReason arg0) { 
     } 

     @Override 
     public void onLoaded(String arg0) { 
     } 

     @Override 
     public void onLoading() { 
     } 


     @Override 
     public void onVideoEnded() { 
     } 

     @Override 
     public void onVideoStarted() { 
     } 
    }; 
} 

XML

<?xml version="1.0" encoding="utf-8"?> 

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" 
    android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin" 
    android:paddingRight="@dimen/activity_horizontal_margin" 
    android:background="@color/black" 
    android:paddingTop="@dimen/activity_vertical_margin" 
    android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".example"> 

    <TextView android:text="@string/hello_world" android:layout_width="wrap_content" 
     android:layout_height="wrap_content" /> 


    <com.google.android.youtube.player.YouTubePlayerView 
     android:id="@+id/youtube_player" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:background="@color/black"/> 

</RelativeLayout> 
+1

Добро пожаловать! Вы хотите отредактировать свой пост, чтобы показать, что вы пробовали, а затем либо плохой результат, либо ошибки, которые вы получаете. Я не собираюсь понижать ваш вопрос до тех пор, пока у вас не будет возможности редактировать, но не удивляйтесь, если это делают другие. Перед редактированием вы захотите прочитать [this] (http://stackoverflow.com/help/how-to-ask). – LDMJoe

ответ

0

Остальные два ответа верны. В частности, вызов REST YouTube API, который вы ищете, находится под PlaylistItems, который получает список всех видео в плейлисте.

Из документов, вызов GET является:

GET https://www.googleapis.com/youtube/v3/playlistItems?part=id&playlistId=[yourPlaylistId] 
+0

Я уже видел это, но я понятия не имею, как это работает. Это должно быть на странице java? –

+0

Java имеет [множество инструментов] (http://stackoverflow.com/questions/3913502/restful-call-in-java), чтобы HTTP-запросы к конечным точкам REST, как указано выше. Google вокруг много замечательных примеров. – Amasa

+0

Нужен ли мне файл jar, отличный от jar-файла youtube? Я получаю недопустимую ошибку токена при написании строки GET. –

2

Я сделал это с помощью Youtube API отдыха вызовов, задач асинхронных и recyclerview.

RecyclerView помогает создать список, а задача async поможет вам сделать HTTP-запросы в фоновом режиме.

Изучите основы асинхронной задачи и recyclerview. http://www.androidhive.info/ имеет отличные уроки по этому вопросу.

Остальные вызов Youtube будет выглядеть следующим образом (я считаю, что максимальные результаты 50):

https://www.googleapis.com/youtube/v3/playlistItems?part=snippet&playlistId=iBi9LVIrC-fVelw2-I2r-yrEk6SpXfO8&key=AIzaSyCI1oCTXwZzgVv7LDQ8NykSIUEWt247KnU&maxResults=50

Вот некоторые шаги, чтобы вы начали:

К примеру, в этом списке воспроизведения URL : https://www.youtube.com/watch?v=2q7XGuH2Q-s&list=PLuR1PJnGR-Igj4mNcr6_zDkQ3DTVA6wG5

Все после «PL» - это идентификатор «uR1PJnGR-Igj4mNcr6_zDkQ3DTVA6wG5».

Также вам нужно создать ключ браузера в консоли разработчика Google. Вам не нужно вводить что-либо в текстовое поле, просто нажмите «Ввод» и извлеките свой ключ api

В консоли Google Developers в разделе «API» убедитесь, что вы включили Youtube Data api.

https://www.dropbox.com/s/6wtr7hpawx3ij64/youtubeApi.PNG

https://developers.google.com/youtube/android/player/downloads/

Добавить файл фляги от загрузки в ваш ЛИЭС папку на вновь загруженном проекте.DONT добавить его, перетащив его в Android Studio

Далее перейдите в Android Studio и щелкните проект выпадающим:

https://www.dropbox.com/s/cjlr4fnnikpnx7a/Screen%20Shot%202015-04-22%20at%2012.39.28%20PM.png?dl=0

затем выпадающей папку ЛИЭСА и вы увидите YouTube jar.right нажмите файл jar и нажмите «добавить в качестве библиотеки».

У меня есть более глубокий учебник здесь: http://cmcoffee91.com/blog/2016/12/18/how-to-add-youtube-playlist-to-your-android-app/

Смежные вопросы