2012-02-18 171 views
10

我们可以在android应用中观看YouTube视频吗?我的意思是,如果我们在YouTube上连接到视频,我们可以在VideoView或其他小部件中播放它吗? 关于它的任何想法?如何在android中嵌入和播放YouTube视频

+0

你有没有尝试过谷歌至少搜索?可能的重复http://stackoverflow.com/a/5798922/782719 – GETah 2012-02-18 14:33:47

+10

我不需要在另一个应用程序中打开视频。我想在我的应用程序中播放它。 – user1021984 2012-02-18 14:38:32

+0

这非常简单,在开发者控制台中启用Youtube API,下载youtube播放器jar文件并包含它。请参阅此示例http://www.feelzdroid.com/2017/01/embed-youtube-video-player-android-app-example.html – Naruto 2017-01-17 06:18:15

回答

0

有官方Android版YouTube播放器API至极,你可以使用。这有点复杂,但比其他使用webclient的解决方案更好。

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

4

首先,你应该尝试从以下链接下载YouTube播放器库为Android:

Youtube Android Player

你应该先安装这样的:项目 - >打开菜单File>结构>相关性选项卡>添加 - >库的依赖

,如果它不能正常工作,请尝试以下两种方法之一:

添加依赖库内部的依赖性的build.gradle文件库里面的UR使用,并将其粘贴到外部库中。

OR

就到你的libs文件夹中的应用程序文件夹中粘贴所有的.jar如图书馆有文件现在的伎俩在这里的是,现在去settings.gradle文件中,现在加入这一行有“:应用程序: libs'包括后':应用程序'它肯定会工作。

然后,你应该有一个这样的布局:

<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

这应该是接受的答案 – 2016-11-01 12:41:18

0

可以将YouTube视频使用YouTube SDK

与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) { 
     } 
     } 
相关问题