0

I keep getting following error- "There was a problem with network[400]".

Please refer the following code.

 private void initializeYoutubeFragment() {
        // in original code I am using my key here for sake of key safety I have replaced it
        String apiKey = "MY_KEY";
        FragmentManager manager = getSupportFragmentManager();
        FragmentTransaction transaction = manager.beginTransaction();
        YouTubePlayerSupportFragment youtubeFragment = YouTubePlayerSupportFragment.newInstance();
        transaction.add(R.id.fl_video, youtubeFragment);
        transaction.commitNow();
        manager.executePendingTransactions();
        youtubeFragment.initialize(apiKey, new YouTubePlayer.OnInitializedListener() {
            @Override
            public void onInitializationSuccess(YouTubePlayer.Provider provider, YouTubePlayer youTubePlayer, boolean b) {
                youTubePlayer.cuePlaylist("5xVh-7ywKpE");
                youTubePlayer.setPlayerStateChangeListener(callback);
            }

            @Override
            public void onInitializationFailure(YouTubePlayer.Provider provider, YouTubeInitializationResult youTubeInitializationResult) {

                // no callback here
                Log.e("TAG", "Fail");

            }
        });

    }

See the attached screen shot enter image description here

Update 1 I also added YouTubePlayer.PlayerStateChangeListener to youtubeplayer instance in onInitializationSuccess method. It calls onLoading method then goes on to call onError(YouTubePlayer.ErrorReason). Heer ErrorReason.INTERNAL_ERROR which have no explanation at all even in docs

callback code

private YouTubePlayer.PlayerStateChangeListener callback = new YouTubePlayer.PlayerStateChangeListener() {
    @Override
    public void onLoading() {
        Log.e("Tag", "loading");
    }

    @Override
    public void onLoaded(String s) {
        Log.e("Tag", "loaded");
    }

    @Override
    public void onAdStarted() {
        Log.e("Tag", "ad started");
    }

    @Override
    public void onVideoStarted() {
        Log.e("Tag", "Video Started");
    }

    @Override
    public void onVideoEnded() {
        Log.e("Tag", "video ended");
    }

    @Override
    public void onError(YouTubePlayer.ErrorReason errorReason) {
        Log.e("Tag", "Error");
    }
};
Taranmeet Singh
  • 1,199
  • 1
  • 11
  • 14
  • Examine the `youTubeInitializationResult ` from `onInitializationFailure()`. It may lead you to the cause of error. See possible values [here](https://developers.google.com/youtube/android/player/reference/com/google/android/youtube/player/YouTubeInitializationResult). – azizbekian Feb 21 '17 at 11:12
  • @azizbekian But I am getting callback in onInitializationSuccess block. – Taranmeet Singh Feb 21 '17 at 11:15
  • please check answer of marienke in this link : http://stackoverflow.com/questions/13731192/youtube-intent-error-400 Hope this helps – rogue_shadow Feb 21 '17 at 11:18
  • @rogue_shadow I am already passing Video_ID and not the url – Taranmeet Singh Feb 21 '17 at 11:21
  • embedding video using iFrame in web view works fine so network is definitely not an issue. – Taranmeet Singh Feb 21 '17 at 12:20

0 Answers0