Optimum way to implement youtube player into android application

324 views Asked by At

I'm working on a android application and i get mp4 file urls from a json file. Now i want to play these files inside my app using a youtube player. After some research i managed to play my videos within my app. But when i go back from playing videos to other parts of my app,the app seems to be slowed down. I need to know if i'm doing this correctly.

This is my code used to play the video.

if (YouTubeApiServiceUtil.isYouTubeApiServiceAvailable(activity).equals(
                        YouTubeInitializationResult.SUCCESS)
                        && android.os.Build.VERSION.SDK_INT > android.os.Build.VERSION_CODES.ICE_CREAM_SANDWICH) {
                    Intent intent = YouTubeStandalonePlayer
                            .createVideoIntent(activity, API_KEY,
                                    video.getFile());
                    startActivity(intent);
                }

from video.getFile(); i'm getting my video url.

i have used YouTubeAndroidPlayerApi.jar as the library.

1

There are 1 answers

0
Vid On

1.Download YouTubePlyaer API https://developers.google.com/youtube/android/player/downloads/

  1. Register your app on google developer console https://console.developers.google.com

  2. Take an unique API Key and use that in your App.

use below code

public class AboutUs extends YouTubeBaseActivity implements YouTubePlayer.OnInitializedListener {

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

    YouTubePlayerView youTubePlayerView = (YouTubePlayerView) findViewById(R.id.youtube_player);
    youTubePlayerView.initialize(Constants.YOUTUBE_API_KEY, this);

    initViews();
}

private void initViews() {
    Button btnVisitMega = (Button) findViewById(R.id.btn_visit_megaforties);
    Button btnVisitSecurity = (Button) findViewById(R.id.btn_visit_security_seals);

    btnVisitMega.setOnClickListener(this);
    btnVisitSecurity.setOnClickListener(this);
}

@Override
public void onInitializationFailure(Provider arg0, YouTubeInitializationResult arg1) {
    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);

    /** Start buffering **/
    if (!wasRestored) {
        player.cueVideo(Constants.YOUTUBE_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() {
    }
};