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

时间:2012-02-18 14:25:16

标签: android youtube

我们可以在Android应用中观看youtube视频吗?我的意思是如果我们在youtube上有视频链接,我们可以在VideoView或其他小部件中播放吗? 关于它的任何想法?

6 个答案:

答案 0 :(得分:15)

答案很简单“是”。

请查看以下链接,

How to play YouTube video in my Android application?

Streaming Youtube Videos

答案 1 :(得分:5)

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

Youtube Android Player

您应该首先安装它:Project - &gt;菜单:文件&gt; <结构> “依赖关系选项卡”&gt;添加 - &gt;库依赖

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

在库的build.gradle文件中添加库内部依赖关系,并在外部库中粘贴你的库。

OR

只需转到app文件夹中的libs文件夹并粘贴你所有的.jar例如库文件现在这里的技巧就是现在进入settings.gradle文件现在添加这行包括':app:libs'在include'之后:应用'它肯定会有用。

然后,您应该有这样的布局:

<com.google.android.youtube.player.YouTubePlayerView
    android:id="@+id/player_view"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"/>

你可以有这样的玩家活动:

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

}

答案 2 :(得分:1)

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

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

答案 3 :(得分:1)

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

YouTube with webview

如果这是您想要实现的目标,您可以从此处获取示例应用: - https://github.com/hiteshsahu/Android-Universal-Web-Content-Loader

它既支持肖像又支持景观模式。

答案 4 :(得分:0)

实施Youtube视频请参阅此帖

http://www.feelzdroid.com/2017/01/embed-youtube-video-player-android-app-example.html

如果您遇到任何问题,请在此处添加带有图片表示的详细步骤。

由于

答案 5 :(得分:0)

可以使用youtube sdk整合youtube视频

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

了解更多http://www.androidcoding.in/2017/12/17/android-play-youtube-video-play-youtube-video-app/

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