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

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

问题描述

我是这个网站的新手,到目前为止,它对我的​​帮助很大.我正在构建一个包含 youtube 播放列表的应用程序,到目前为止它可以工作,但我只有一个视频,下一个视频只有在您按下下一个按钮时才会显示,我想创建该播放列表中所有视频的列表.目前使用 java for android 和 xml,如果可能的话,希望保持这种方式.谢谢.

我的代码:

import android.drm.DrmStore;导入 android.os.Bundle;导入 android.widget.Toast;导入 com.google.android.youtube.player.YouTubeBaseActivity;导入 com.google.android.youtube.player.YouTubeInitializationResult;导入 com.google.android.youtube.player.YouTubePlayer;导入 com.google.android.youtube.player.YouTubePlayer.ErrorReason;导入 com.google.android.youtube.player.YouTubePlayer.PlaybackEventListener;导入 com.google.android.youtube.player.YouTubePlayer.PlayerStateChangeListener;导入 com.google.android.youtube.player.YouTubePlayer.Provider;导入 com.google.android.youtube.player.YouTubePlayerView;导入 com.google.android.youtube.player.YouTubePlayer.OnFullscreenListener;公共类 ky 扩展了 YouTubeBaseActivity 实现了 YouTubePlayer.OnInitializedListener {public static final String API_KEY = "api";//http://youtu.be/public static final String VIDEO_ID = "PLZeI1YOvEK7EK499BrkBl95VseODbMDa-";public void onFullscreen(boolean isFullscreen) {如果(是全屏)播放事件监听器.onPlaying();}@覆盖protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);/** 附加布局 xml **/setContentView(R.layout.ky);/** 初始化 YouTube 播放器视图 **/YouTubePlayerView youTubePlayerView = (YouTubePlayerView) findViewById(R.id.youtube_player);youTubePlayerView.initialize(API_KEY, this);}@覆盖public void onInitializationFailure(Provider provider, YouTubeInitializationResult result) {Toast.makeText(this, "初始化失败!", Toast.LENGTH_LONG).show();}@覆盖public void onInitializationSuccess(Provider provider, final YouTubePlayer player, boolean wasRestored ) {/** 向 YouTubePlayer 实例添加监听器 **/player.setPlayerStateChangeListener(playerStateChangeListener);player.setPlaybackEventListener(playbackEventListener);player.setOnFullscreenListener(new OnFullscreenListener() {@覆盖public void onFullscreen(boolean b) {如果(二)播放器播放();别的播放器播放();}});/** 开始缓冲 **/如果 (!wasRestored) {player.loadPlaylist(VIDEO_ID);}}私人 PlaybackEventListener 播放事件监听器 = 新的 PlaybackEventListener() {@覆盖公共无效onBuffering(布尔arg0){}@覆盖公共无效 onPaused() {}@覆盖公共无效 onPlaying() {}@覆盖公共无效 onSeekTo(int arg0) {}@覆盖公共无效 onStopped() {}};私有 PlayerStateChangeListener playerStateChangeListener = new PlayerStateChangeListener() {@覆盖公共无效 onAdStarted() {}@覆盖公共无效 onError(ErrorReason arg0) {}@覆盖公共无效onLoaded(字符串arg0){}@覆盖公共无效 onLoading() {}@覆盖公共无效 onVideoEnded() {}@覆盖公共无效 onVideoStarted() {}};}

xml

<TextView android:text="@string/hello_world" android:layout_width="wrap_content"android:layout_height="wrap_content"/><com.google.android.youtube.player.YouTubePlayerViewandroid:id="@+id/youtube_player"android:layout_width="match_parent"android:layout_height="match_parent"android:background="@color/black"/></RelativeLayout>

解决方案

我已经使用 Youtube Api 休息调用、异步任务和回收站视图完成了这项工作.

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

查阅async task和recyclerview的基础知识.http://www.androidhive.info/ 有关于这方面的精彩教程.

Youtube rest 调用将如下所示(我相信最大结果是 50):

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

以下是帮助您入门的一些步骤:

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

PL"之后的所有内容都是 IDuR1PJnGR-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并单击项目下拉列表:

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

然后下拉 libs 文件夹,您将看到 youtube jar.右键单击 jar 文件,然后单击添加为库".

我在这里有一个更深入的教程: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天全站免登陆