youtubeplayerVIew 在开始新视频时停止

youtubeplayerVIew stop when start new Video

我能够初始化 youtube 视频,但每当我尝试加载另一个视频时它会播放现有视频,我创建了一个方法,如何停止 mwthod 用来停止和加载另一个视频的 youtube 视频。

        YouTubePlayer youTubePlayerMain;

        private void init(final String VIdeoId) {
        rvMainl.setVisibility(View.GONE);
        youTubeView.setVisibility(View.VISIBLE);
        if (youTubePlayerMain != null)
        {
            try{
                youTubePlayerMain.pause();
                youTubePlayerMain.cueVideo(VIdeoId);
            }
            catch(Exception e){
                e.printStackTrace();
            }
        }
      else 
        {

          youTubeView.initialize(Config.YOUTUBE_API_KEY, new YouTubePlayer.OnInitializedListener() {
                @Override
                public void onInitializationSuccess(YouTubePlayer.Provider provider, final YouTubePlayer youTubePlayer, boolean b) {
                    youTubePlayerMain = youTubePlayer;
                    if (!b) {
                        youTubePlayer.cueVideo(VIdeoId); // Plays https://www.youtube.com/watch?v=fhWaJi1Hsfo

                    }

                }

                @Override
                public void onInitializationFailure(YouTubePlayer.Provider provider, YouTubeInitializationResult youTubeInitializationResult) {
                    if (youTubeInitializationResult.isUserRecoverableError()) {
                        youTubeInitializationResult.getErrorDialog(Youtube.this, RECOVERY_REQUEST).show();
                    } else {

                        Toast.makeText(Youtube.this, youTubeInitializationResult.toString(), Toast.LENGTH_LONG).show();
                    }
                }
            });
        }

    }

我发现了问题,YouTubePlayer 全局并使用第二次加载视频..

这对我有用。

Youtube.java (Activity)

public class Youtube extends YouTubeBaseActivity implements View.OnClickListener {
    public static final String API_KEY = Config.YOUTUBE_API_KEY;
    boolean doubleBackToExitPressedOnce = false;
    //http://youtu.be/<VIDEO_ID>
    public static final String VIDEO_ID = "ZWub9VTECxQ";
    LinearLayout llVideo1, llvideo2, llVideo3,llVideo4;
    ImageView ivBack;

    private static final int RECOVERY_REQUEST = 1;
    private YouTubePlayerView youTubeView;
    RelativeLayout rvMainl;
    YouTubePlayer youTubePlayerMain;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.fragment_youtube_player);
        rvMainl = (RelativeLayout) findViewById(R.id.rvMain);
        ivBack = (ImageView) findViewById(R.id.youtube_iv_back);

        youTubeView = (YouTubePlayerView) findViewById(R.id.youtube_view);
        youTubeView.setVisibility(View.GONE);
        llVideo1 = (LinearLayout) findViewById(R.id.frag_youtube_btn_one);
        llvideo2 = (LinearLayout) findViewById(R.id.frag_youtube_btn_two);
        llVideo3 = (LinearLayout) findViewById(R.id.frag_youtube_btn_three);
        llVideo4 = (LinearLayout)findViewById(R.id.frag_youtube_btn_four);
        llVideo4.setOnClickListener(this);
        llVideo1.setOnClickListener(this);
        llvideo2.setOnClickListener(this);
        llVideo3.setOnClickListener(this);
        ivBack.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                backButton();
            }
        });
    }

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



    }

    @Override
    public void onBackPressed() {

       if (youTubeView.getVisibility() == View.VISIBLE)
       {
           rvMainl.setVisibility(View.VISIBLE);

           youTubeView = (YouTubePlayerView) findViewById(R.id.youtube_view);
           youTubeView.setVisibility(View.GONE);
       }
       else
       {
           backButton();
       }


    }


    private void backButton() {
        Intent i = new Intent(Youtube.this, MainActivity.class);
        startActivity(i);
        finish();
        overridePendingTransition(R.anim.left_to_right_back, R.anim.right_to_left_back);
    }


    @Override
    public void onClick(View view) {
        switch (view.getId()) {
            case R.id.frag_youtube_btn_one:
                youTubeView.destroyDrawingCache();
                youTubeView.destroyDrawingCache();

                init("DHFfXNES8gw");
                break;
            case R.id.frag_youtube_btn_two:
                init("RLcsVqx4IsU");
                break;
            case R.id.frag_youtube_btn_three:
                init("8Fx97V_Z3YY");
                break;
            case R.id.frag_youtube_btn_four:
                init("940qp3BdR6o");
                break;

        }
    }

    private void init(final String VIdeoId) {
        rvMainl.setVisibility(View.GONE);
        youTubeView.setVisibility(View.VISIBLE);



        if (youTubePlayerMain != null)
        {
            try{
                youTubePlayerMain.pause();
                youTubePlayerMain.cueVideo(VIdeoId);
            }
            catch(Exception e){
                e.printStackTrace();
            }


        }else {

            youTubeView.initialize(Config.YOUTUBE_API_KEY, new YouTubePlayer.OnInitializedListener() {
                @Override
                public void onInitializationSuccess(YouTubePlayer.Provider provider, final YouTubePlayer youTubePlayer, boolean b) {
                    youTubePlayerMain = youTubePlayer;
                    if (!b) {
                        try
                        {                        youTubePlayer.cueVideo(VIdeoId); // Plays https://www.youtube.com/watch?v=fhWaJi1Hsfo

                        }catch (Exception e)
                        {
                            Toast.makeText(getApplicationContext(),"Somrthing Went Wrong with this video ",Toast.LENGTH_SHORT).show();

                        }

                    }

                }

                @Override
                public void onInitializationFailure(YouTubePlayer.Provider provider, YouTubeInitializationResult youTubeInitializationResult) {
                    if (youTubeInitializationResult.isUserRecoverableError()) {
                        youTubeInitializationResult.getErrorDialog(Youtube.this, RECOVERY_REQUEST).show();
                    } else {

                        Toast.makeText(Youtube.this, youTubeInitializationResult.toString(), Toast.LENGTH_LONG).show();
                    }
                }
            });
        }

    }
}

fragment_youtube_player.xml

<android.support.design.widget.AppBarLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content">

    <android.support.v7.widget.Toolbar
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

        <ImageView
            android:id="@+id/youtube_iv_back"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@drawable/ic_back" />

        <TextView
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_marginLeft="30dp"
            android:text="Everest Videos"
            android:textColor="@android:color/white"
            android:textSize="20dp" />

    </android.support.v7.widget.Toolbar>

</android.support.design.widget.AppBarLayout>

<RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:padding="10dp">


    <RelativeLayout
        android:id="@+id/rvMain"
        android:layout_width="match_parent"
        android:layout_height="match_parent">


        <LinearLayout
            android:orientation="vertical"
            android:layout_width="match_parent"
            android:layout_height="wrap_content">

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal"
            android:weightSum="2">


            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:orientation="horizontal"
                android:weightSum="2">


                <android.support.v7.widget.CardView
                    android:layout_width="match_parent"
                    android:layout_height="120dp"
                    android:layout_margin="10dp"
                    android:layout_weight="1"
                    android:background="@drawable/border"
                    android:orientation="vertical"
                    android:padding="10dp">

                     <LinearLayout
                         android:padding="10dp"
                         android:id="@+id/frag_youtube_btn_one"

                         android:layout_width="match_parent"
                         android:orientation="vertical"
                         android:layout_height="match_parent">
                         <ImageView
                             android:layout_width="match_parent"
                             android:layout_height="wrap_content"
                             android:layout_gravity="center_horizontal"
                             android:src="@drawable/ic_youtube" />


                         <TextView
                             android:layout_width="wrap_content"
                             android:layout_height="wrap_content"
                             android:paddingTop="5dp"
                             android:gravity="center_horizontal"
                             android:text="@string/str_video_one" />
                     </LinearLayout>



                </android.support.v7.widget.CardView>


                <android.support.v7.widget.CardView
                    android:layout_width="match_parent"
                    android:layout_height="120dp"
                    android:layout_margin="10dp"
                    android:layout_weight="1"

                    android:background="@drawable/border"
                    android:orientation="vertical"
                    android:padding="10dp">


                    <LinearLayout
                        android:id="@+id/frag_youtube_btn_two"

                        android:padding="10dp"
                        android:orientation="vertical"
                        android:layout_width="match_parent"
                        android:layout_height="match_parent">


                    <ImageView
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:layout_gravity="center_horizontal"
                        android:src="@drawable/ic_youtube" />


                    <TextView
                        android:gravity="center"
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:paddingTop="5dp"
                        android:text="@string/str_video_two" />

                    </LinearLayout>
                </android.support.v7.widget.CardView>
            </LinearLayout>

        </LinearLayout>
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal"
            android:weightSum="2">


            <android.support.v7.widget.CardView
                android:layout_width="match_parent"
                android:layout_height="120dp"
                android:layout_margin="10dp"
                android:layout_weight="1"
                android:background="@drawable/border"
                android:orientation="vertical"
                android:padding="10dp">

                <LinearLayout
                    android:id="@+id/frag_youtube_btn_three"

                    android:padding="10dp"
                    android:orientation="vertical"
                    android:layout_width="match_parent"
                    android:layout_height="match_parent">

                    <ImageView
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:layout_gravity="center_horizontal"
                        android:src="@drawable/ic_youtube" />


                    <TextView
                        android:gravity="center_horizontal"
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:paddingTop="5dp"
                        android:text="@string/str_video_three" />
                </LinearLayout>




            </android.support.v7.widget.CardView>


            <android.support.v7.widget.CardView
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_margin="10dp"
                android:layout_weight="1"
                android:background="@drawable/border"
                android:orientation="vertical"
                android:padding="10dp">


                <LinearLayout
                    android:id="@+id/frag_youtube_btn_four"
                    android:padding="10dp"
                    android:orientation="vertical"
                    android:layout_width="match_parent"
                    android:layout_height="120dp">

                    <ImageView
                        android:id="@+id/imageView"
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:layout_gravity="center_horizontal"
                        android:src="@drawable/ic_youtube" />


                    <TextView
                        android:gravity="center"
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:paddingTop="5dp"
                        android:text="EKOMILK SCAN." />
                </LinearLayout>




            </android.support.v7.widget.CardView>
        </LinearLayout>

        </LinearLayout>
    </RelativeLayout>

    <com.google.android.youtube.player.YouTubePlayerView
        android:id="@+id/youtube_view"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true" />
</RelativeLayout>