Youtube integration in android does not work in Lollipop

家住魔仙堡 提交于 2019-12-25 09:59:34

问题


I have embedded youtube API to play videos in an android app. It works completely fine in kitkat , Jellybean. But in lollipop devices as soon as click on play button the app crashes. The code is as follows. I have used 1.2.2 version of YOUTUBEPLAYER API.

Link to myLogcat http://pastebin.com/jT26G7sk

public class YoutubeVideo extends YouTubeBaseActivity implements
    YouTubePlayer.OnInitializedListener {


private static final int RECOVERY_DIALOG_REQUEST = 1;

// YouTube player view
private YouTubePlayerView youTubeView;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    requestWindowFeature(Window.FEATURE_NO_TITLE);
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
            WindowManager.LayoutParams.FLAG_FULLSCREEN);

    setContentView(R.layout.youtube_activity);


    youTubeView = (YouTubePlayerView) findViewById(R.id.youtube_view);
    Toast.makeText(YoutubeVideo.this, "Loading Trailer...Please wait", Toast.LENGTH_LONG).show();
    // Initializing video player with developer key
    youTubeView.initialize(Config.DEVELOPER_KEY, this);

}



@Override
public void onInitializationFailure(YouTubePlayer.Provider provider,
        YouTubeInitializationResult errorReason) {
    if (errorReason.isUserRecoverableError()) {
        errorReason.getErrorDialog(this, RECOVERY_DIALOG_REQUEST).show();
    } else {
        String errorMessage = String.format(
                getString(R.string.error_player), errorReason.toString());
        Toast.makeText(this, errorMessage, Toast.LENGTH_LONG).show();
    }
}

@Override
public void onInitializationSuccess(YouTubePlayer.Provider provider,
        YouTubePlayer player, boolean wasRestored) {
    if (!wasRestored) {

        // loadVideo() will auto play video
        // Use cueVideo() method, if you don't want to play it automatically
        player.setPlayerStateChangeListener(playerStateChangeListener);
        player.setPlaybackEventListener(playbackEventListener);

        player.loadVideo(Config.YOUTUBE_VIDEO_CODE);
                player.setFullscreen(true);
        // Hiding player controls
       player.setPlayerStyle(PlayerStyle.DEFAULT);
    }
}

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

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (requestCode == RECOVERY_DIALOG_REQUEST) {
        // Retry initialization if user performed a recovery action
        getYouTubePlayerProvider().initialize(Config.DEVELOPER_KEY, this);
    }
}

private YouTubePlayer.Provider getYouTubePlayerProvider() {
    return (YouTubePlayerView) findViewById(R.id.youtube_view);
    }
 }

Xml Layout:

<RelativeLayout     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:background="#000000"
>

<com.google.android.youtube.player.YouTubePlayerView
    android:id="@+id/youtube_view"
    android:keepScreenOn="true"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="#000000"
   />
</RelativeLayout>

来源:https://stackoverflow.com/questions/33931880/youtube-integration-in-android-does-not-work-in-lollipop

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!