如何查看特定播放列表的YouTube列表? [英] how to view youtube list of a specific playlist?

查看:84
本文介绍了如何查看特定播放列表的YouTube列表?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我是这个网站的新手,到目前为止,它确实对我的帮助不大. 我正在构建和包含youtube播放列表的应用,到目前为止,它仍在正常工作,但是我只有一个视频,而下一个视频仅在您按下下一步"按钮时才会显示,我想在该播放列表中创建所有视频​​的列表. 当前将Java用于android和xml,如果可能的话,希望保持这种方式. 谢谢.

我的代码:

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>

解决方案

我已经使用Youtube Api的剩余调用,异步任务和recyclerview做到了这一点.

RecyclerView帮助创建列表,异步任务帮助您在后台发出http请求.

查找异步任务和recyclerview的基础知识. http://www.androidhive.info/对此有很好的指导.

Youtube休息电话将如下所示(我认为最大结果为50):

https://www.googleapis.com/youtube/v3/playlistItems?part=snippet&playlistId=iBi9LVIrC-fVelw2-I2r-yrEk6SpXfO8&key=AIzaSyCI1oCTXwZzgVv7LDQ8NykSIUEWt247> Result =

以下是一些入门指南:

例如,在此播放列表网址中: https://www.youtube.com/watch?v=2q7XGuH2Q-s&list=PLuR1PJnGR-Igj4mNcr6_zDkQ3DTVA6wG5

"PL"之后的所有内容均为id"uR1PJnGR-Igj4mNcr6_zDkQ3DTVA6wG5".

现在您还必须在Google Developer Console中创建一个浏览器密钥.您无需在文本框中输入任何内容,只需单击Enter,然后检索您的api密钥

在您的Google Developers控制台的"API"下,确保您打开了Youtube Data api.

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

https://developers.google.com/youtube/android/player/下载/

将下载的jar文件添加到新下载项目的libs文件夹中.不要将其拖到Android Studio中添加

下一步转到android studio并单击项目下拉菜单:

我在这里有一个更深入的教程: http://cmcoffee91.com/blog/2016/12/18/how-to-add-youtube-playlist-to-your-android-app/

I'm new to this website and so far it really helped me just from looking. I'm building and app that contains a playlist from youtube, so far it's working but I only have one video and the next video will only show if you press on the next button, I want to create a list of all videos on that playlist. Currently using java for android and xml, would like to keep it that way if it's possible. Thank you.

my code:

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>

解决方案

I've done this using Youtube Api rest calls, async task and a recyclerview.

RecyclerView helps create a list and async task helps you make http requests in the background.

Look up the basics of async task and recyclerview. http://www.androidhive.info/ has great tutorials on this.

The Youtube rest call will look like this(I believe the max results are 50):

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

Here are some steps to get you started:

For example in this playlist url: https://www.youtube.com/watch?v=2q7XGuH2Q-s&list=PLuR1PJnGR-Igj4mNcr6_zDkQ3DTVA6wG5

Everything after "PL" is the id "uR1PJnGR-Igj4mNcr6_zDkQ3DTVA6wG5".

Also now you have to create a browser key in Google Developer console. You don't have to enter anything in the textbox, just click enter, and retrieve your api key

In your Google Developers console,under "APIs" make sure you turn Youtube Data api.

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

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

Add the jar file from the downloads to your libs folder in your newly downloaded project.DONT add it by dragging it into Android Studio

Next go to android studio and click the project drop down:

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

then drop down the libs folder and you will see the youtube jar.right click the jar file and click "add as library".

I have a more in-depth tutorial here: http://cmcoffee91.com/blog/2016/12/18/how-to-add-youtube-playlist-to-your-android-app/

这篇关于如何查看特定播放列表的YouTube列表?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆