首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >无法使用Youtube Android Player API播放某些YouTube视频

无法使用Youtube Android Player API播放某些YouTube视频
EN

Stack Overflow用户
提问于 2015-09-25 22:42:25
回答 2查看 9.7K关注 0票数 18

例如,这个视频不能用Youtube player API:https://www.youtube.com/watch?v=OLK1efdt3n8播放(来自搜索响应的其他视频可以)

我收到以下消息:

代码语言:javascript
复制
09-25 17:18:50.226  24280-24280/com.mypackagename W/YouTubeAndroidPlayerAPI﹕ Cannot load modern controls UI. Upgrade to the latest version of the Android YouTube API.
09-25 17:19:05.911  24280-24280/com.mypackagename E/YoutubePlayerFragment﹕ video error : INTERNAL_ERROR

YouTubePlayer应用编程接口版本: 1.2.1 (最新)

设备上的YouTube应用程序是最新的,可以播放此视频

视频参数:videoEmbeddable=true videoSyndicated=true

EN

回答 2

Stack Overflow用户

发布于 2015-10-06 18:26:47

嘿,这是我在我的应用程序中为you tube视频播放实现的

代码语言:javascript
复制
    public class Youtubevideo  extends YouTubeBaseActivity implements YouTubePlayer.OnInitializedListener
{

    public static final String API_KEY = "Use Your API key For youtube api";

    //http://youtu.be/<VIDEO_ID>
      //sample video id
    public  String VIDEO_ID = "abcdefgh";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        /** attaching layout xml **/
        setContentView(R.layout.youtubevideo);
       Intent dataReceived = getIntent();
        if(dataReceived != null)
        {
           VIDEO_ID = dataReceived.getStringExtra("url");

        }
        /** 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, YouTubePlayer player, boolean wasRestored) {
        /** add listeners to YouTubePlayer instance **/
        //player.setPlayerStateChangeListener(playerStateChangeListener);
        //player.setPlaybackEventListener(playbackEventListener);
        player.setFullscreen(true);
        player.setShowFullscreenButton(true);
        /** Start buffering **/
        if (!wasRestored) {
            player.cueVideo(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将会是这样的:

代码语言:javascript
复制
<LinearLayout 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:orientation="vertical" >

    <com.google.android.youtube.player.YouTubePlayerView
        android:id="@+id/youtube_player"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="#fff"
        android:padding="5dp" />

</LinearLayout>

在build.gradle中,使用开放可用的Youtube jar库:

代码语言:javascript
复制
compile files('libs/YouTubeAndroidPlayerApi.jar')

希望这能有所帮助。:)

票数 0
EN

Stack Overflow用户

发布于 2015-10-01 01:27:40

这太奇怪了!我只能建议你使用一些flags,看看是否有一些组合可以解决这个问题。我将从以下内容开始:

代码语言:javascript
复制
youtubePlayer.addFullscreenControlFlag(YouTubePlayer.FULLSCREEN_FLAG_CONTROL_SYSTEM_UI);
票数 -2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32784730

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档