如何查看特定播放列表的 youtube 列表? [英] how to view youtube list of a specific playlist?
问题描述
我是这个网站的新手,到目前为止,它对我的帮助很大.我正在构建一个包含 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.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):
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屋!