Integrating youtube to fragment

前端 未结 2 1386
南旧
南旧 2020-12-02 11:36

My Activity extends another activity and consists of navigation drawer where each item opens a new fragment.I want to integrate Youtube to one of the fragment..Previously i

2条回答
  •  -上瘾入骨i
    2020-12-02 12:07

    First extend your Activity as normal

     class YourActivity extends Activity...
    

    in Layout file put the below lines

    
    

    Then in your Activity you can create its instance using below line in your onCreareView method of your Fragment.

    YouTubePlayerSupportFragment youTubePlayerFragment = (YouTubePlayerSupportFragment) getActivity().getSupportFragmentManager()
                        .findFragmentById(R.id.youtube_fragment);
    

    or you can declare a FrameLayout in your xml and then initiate the YouTubeSupportFragment using below lines

    
    
    
        
    
    
    

    Code in your onCreateView

     YouTubePlayerSupportFragment youTubePlayerFragment = YouTubePlayerSupportFragment.newInstance();
    
        youTubePlayerFragment.initialize("DEVELOPER_KEY", new OnInitializedListener() {
    
            @Override
            public void onInitializationSuccess(YouTubePlayer.Provider provider, YouTubePlayer player, boolean wasRestored) {
    
                if (!wasRestored) {
                    YPlayer = player;
                    YPlayer.setFullscreen(true);
                    YPlayer.loadVideo("2zNSgSzhBfM");
                    YPlayer.play();
                }
    
            }
    
            @Override
            public void onInitializationFailure(Provider arg0, YouTubeInitializationResult arg1) {
                // TODO Auto-generated method stub
    
            }
        });
        FragmentTransaction transaction = getChildFragmentManager().beginTransaction();
        transaction.add(R.id.youtube_fragment, youTubePlayerFragment).commit();
    

    The key thing here is to use YouTubePlayerSupportFragment instead of YouTubePlayerFragment.

    Hope this helps.

    Here is your Fragment

    import android.app.Activity;
    import android.os.Bundle;
    import android.support.v4.app.Fragment;
    import android.support.v4.app.FragmentActivity;
    import android.support.v4.app.FragmentTransaction;
    import android.view.LayoutInflater;
    import android.view.View;
    import android.view.ViewGroup;
    
    import com.google.android.youtube.player.YouTubeInitializationResult;
    import com.google.android.youtube.player.YouTubePlayer;
    import com.google.android.youtube.player.YouTubePlayer.OnInitializedListener;
    import com.google.android.youtube.player.YouTubePlayer.Provider;
    import com.google.android.youtube.player.YouTubePlayerSupportFragment;
    import com.ismart.omanapp.R;
    
    public class YoutubeFragment extends Fragment {
        private FragmentActivity myContext;
    
        private YouTubePlayer YPlayer;
        private static final String YoutubeDeveloperKey = "xyz";
        private static final int RECOVERY_DIALOG_REQUEST = 1;
    
        @Override
        public void onAttach(Activity activity) {
    
            if (activity instanceof FragmentActivity) {
                myContext = (FragmentActivity) activity;
            }
    
            super.onAttach(activity);
        }
    
        @Override
        public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    
            View rootView = inflater.inflate(R.layout.activity_you_tube_api, container, false);
    
            YouTubePlayerSupportFragment youTubePlayerFragment = YouTubePlayerSupportFragment.newInstance();
            FragmentTransaction transaction = getChildFragmentManager().beginTransaction();
            transaction.add(R.id.youtube_fragment, youTubePlayerFragment).commit();
    
            youTubePlayerFragment.initialize("DEVELOPER_KEY", new OnInitializedListener() {
    
                @Override
                public void onInitializationSuccess(Provider arg0, YouTubePlayer youTubePlayer, boolean b) {
                    if (!b) {
                        YPlayer = youTubePlayer;
                        YPlayer.setFullscreen(true);
                        YPlayer.loadVideo("2zNSgSzhBfM");
                        YPlayer.play();
                    }
                }
    
                @Override
                public void onInitializationFailure(Provider arg0, YouTubeInitializationResult arg1) {
                    // TODO Auto-generated method stub
    
                }
            });
    
        }
    }
    

提交回复
热议问题