首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >安卓- YouTubePlayer实况播放

安卓- YouTubePlayer实况播放
EN

Stack Overflow用户
提问于 2017-09-07 11:38:05
回答 1查看 822关注 0票数 0

我正在用YouTube Android Player API做一个关于youtube live的项目。

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

private Context mContext = this;
YouTubePlayerSupportFragment youTubePlayerFragment;
private YouTubePlayer player;


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_youtube_live);

    youTubePlayerFragment = (YouTubePlayerSupportFragment) getSupportFragmentManager().findFragmentById(R.id.youtube_fragment);
    youTubePlayerFragment.initialize(API_KEY, this);

}


private void playVideoAtSelection() {
    if (!(player == null)) {
        player.loadVideo(LIVE_ID);
    }
}

@Override
public void onInitializationSuccess(YouTubePlayer.Provider arg0, YouTubePlayer arg1, boolean arg2) {
    this.player = arg1;

    playVideoAtSelection();

}

@Override
public void onInitializationFailure(YouTubePlayer.Provider arg0, YouTubeInitializationResult arg1) {

}

}

YouTubePlayer无法播放实况并显示“点击重试时出现错误”。但是,它可以播放正常的视频。请帮帮我!!

*更新*

我发现了无法在YouTubePlayer上播放直播视频的问题。这是因为移动端的youtube版本不是最新版本。更新youtube on play商店后,直播视频即可正常播放。

EN

回答 1

Stack Overflow用户

发布于 2017-09-07 12:26:33

代码语言:javascript
复制
// Use the Youtube player. 

public class YouTubePlayerActivity extends YouTubeBaseActivity implements YouTubePlayer.OnInitializedListener {
    public String videoId = "";
    private YouTubePlayer.PlaybackEventListener playbackEventListener = new YouTubePlayer.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 YouTubePlayer.PlayerStateChangeListener playerStateChangeListener = new YouTubePlayer.PlayerStateChangeListener() {
        @Override
        public void onAdStarted() {
        }

        @Override
        public void onError(YouTubePlayer.ErrorReason arg0) {
        }

        @Override
        public void onLoaded(String arg0) {
        }

        @Override
        public void onLoading() {
        }

        @Override
        public void onVideoEnded() {
            finish();
        }

        @Override
        public void onVideoStarted() {
        }
    };

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_you_tube_player);

        Bundle bundle = getIntent().getExtras();
        if (bundle != null) {
            videoId = bundle.getString(CommonUtils.INTENT_YOUTUBE_VIDEO_ID);
        }

        YouTubePlayerView youTubePlayerView = (YouTubePlayerView) findViewById(R.id.youtube_player);
        youTubePlayerView.initialize(CommonUtils.You_Tube_Api_Key, this);
    }

    @Override
    protected void onResume() {
        super.onResume();
    }

    @Override
    public void onInitializationFailure(YouTubePlayer.Provider provider, YouTubeInitializationResult result) {
        Toast.makeText(this, "Error: Fail to Initialize!", Toast.LENGTH_LONG).show();
    }

    @Override
    public void onInitializationSuccess(YouTubePlayer.Provider provider, YouTubePlayer player, boolean wasRestored) {
        player.setPlayerStateChangeListener(playerStateChangeListener);
        player.setPlaybackEventListener(playbackEventListener);
        if (!wasRestored) {
            player.cueVideo(videoId);
        }
    }
}

activity_you_tube_player.xml 

<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="#000"
        android:padding="0dp" />

</LinearLayout>



Download Youtube jar File From this link, and Copy it into libs folder
[https://developers.google.com/youtube/android/player/downloads/][1]
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46087415

复制
相关文章

相似问题

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