如何在android中嵌入和播放YouTube视频

如何在android中嵌入和播放YouTube视频,android,youtube,Android,Youtube,我们可以在android应用程序中观看youtube视频吗?我的意思是,如果我们有youtube上的视频链接,我们可以在VideoView或其他小部件中播放它吗? 有什么想法吗?答案很简单:是的 请看下面的链接 有一个官方的YouTube Android播放器API,您可以使用它。这有点复杂,但它比使用WebClient的其他解决方案工作得更好 首先,您必须在谷歌API控制台中注册您的应用程序。这是完全免费的,直到你的应用程序每月收到超过25k的请求(或者类似的请求)。有完整的anf伟大的教程

我们可以在android应用程序中观看youtube视频吗?我的意思是,如果我们有youtube上的视频链接,我们可以在VideoView或其他小部件中播放它吗? 有什么想法吗?

答案很简单:是的

请看下面的链接


有一个官方的YouTube Android播放器API,您可以使用它。这有点复杂,但它比使用WebClient的其他解决方案工作得更好


首先,您必须在谷歌API控制台中注册您的应用程序。这是完全免费的,直到你的应用程序每月收到超过25k的请求(或者类似的请求)。有完整的anf伟大的教程下的链接。我希望你能理解他们。如果没有,请询问!:)

首先,您应该尝试从以下链接下载适用于Android的Youtube播放器库:

您应该首先像这样安装它:项目->菜单:文件>结构>依赖项选项卡>添加->库依赖项

如果不起作用,请尝试以下两种方法之一:

在使用的库的build.gradle文件中添加库的依赖项,并将库粘贴到外部库中

只需转到app文件夹中的libs文件夹并将所有.jar(例如库文件)粘贴到那里,这里的技巧是现在进入settings.gradle文件,现在在include之后添加此行include':app:libs':app'它肯定会工作

然后,您应该有如下布局:

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();
            }
        });
    }

}


您可以使用webview来执行此操作。以下是webview的屏幕截图:-

如果这是您想要实现的,您可以从这里获得示例应用程序:-


它支持纵向和横向模式。

要实现Youtube视频,请参阅本文

这里添加了带有图示的详细步骤,如果您遇到任何问题,请告诉我


谢谢

您可以使用youtube sdk集成youtube视频

使用youtube sdk,您可以在集成视频时有许多选项

更多


你至少试过谷歌搜索吗?我不需要在另一个应用程序中打开视频的可能副本。我想在我的应用程序中播放它。它非常简单,在开发者控制台中启用Youtube API,下载Youtube播放器jar文件并包含它。参考这个例子
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();
            }
        });
    }

}
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) {
        }
       }