【问题标题】:Android: How to go back to previous screen after playing YouTube videoAndroid:播放 YouTube 视频后如何返回上一个屏幕
【发布时间】:2019-11-19 03:06:44
【问题描述】:

单击按钮时,我的应用会播放特定的 YouTube 视频。 观看视频后,我希望 YouTube 视频播放器关闭,应用程序返回上一个屏幕,而不是显示更多建议的视频。 这是我的代码,我该怎么做?

package com.newapp;
import android.os.Bundle;
import android.widget.Toast;
import com.google.android.youtube.player.YouTubeBaseActivity;
import com.google.android.youtube.player.YouTubeInitializationResult;
import com.google.android.youtube.player.YouTubePlayer;
import com.google.android.youtube.player.YouTubePlayer.Provider;
import com.google.android.youtube.player.YouTubePlayerView;

public class Level_1_Training extends YouTubeBaseActivity implements
        YouTubePlayer.OnInitializedListener{

    public static final String API_KEY = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX";
    public static final String VIDEO_ID = "XXXXXXXXXXXXXXX";

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

        YouTubePlayerView youTubePlayerView = (YouTubePlayerView)findViewById(R.id.youtubeplayerview);
        youTubePlayerView.initialize(API_KEY, this);
    }

    @Override
    public void onInitializationFailure(Provider provider,
                                        YouTubeInitializationResult result) {
        Toast.makeText(getApplicationContext(),
                "onInitializationFailure()",
                Toast.LENGTH_LONG).show();
    }


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

        player.loadVideo(VIDEO_ID);

        }
    }



}

【问题讨论】:

    标签: android youtube


    【解决方案1】:

    你可以得到 onVideoEnded() 回调。

    Youtube API 链接在这里https://developers.google.com/youtube/android/player/reference/com/google/android/youtube/player/YouTubePlayer.PlayerStateChangeListener#onVideoEnded() 您可以在已实现的方法中添加您的逻辑。

    @Override
        public void onInitializationSuccess(Provider provider, YouTubePlayer player,
                                            boolean wasRestored) {
            player.setPlayerStyle(YouTubePlayer.PlayerStyle.MINIMAL);
            if (!wasRestored) {
            player.loadVideo(VIDEO_ID);   
            player.setPlayerStateChangeListener(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() {
        //your logic ,if the previous activity to be called , 
        // you can perform backpress() or intent to call other activity. 
        // also dont forget to remove player in the 
        // onStop() method of the youtube activity.
    
         }  
                @Override 
                public void onVideoStarted() { }
            });
            }
        }
    

    有用的参考资料

    https://developers.google.com/youtube/v3/code_samples/java

    https://developers.google.com/youtube/v3/

    https://stacktips.com/tutorials/android/youtube-android-player-api-example

    【讨论】:

    • 感谢您的回答。您会添加什么逻辑来销毁 youtube 播放器并返回到 Menu 活动?好久没做Java了,你介意编辑一下我的代码吗?
    • 为了简单起见,我把整个代码放了,还是不明白怎么用,抱歉我的无知。
    • 我已经用 onInitializationSuccess 实现编辑了答案。请遵循这个领导。
    • 现在我明白了,你让我建立了一个新的 statechangelistener。我确实将 finish() 放在 onVideoEnded() 中并且它起作用了,现在当视频停止播放时,它会返回菜单屏幕。谢谢!!!
    • 如果您满意并解决了问题,您可以随时接受答案以供将来参考。谢谢!!
    猜你喜欢
    • 1970-01-01
    • 2011-10-09
    • 2013-05-23
    • 2020-04-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-06
    • 1970-01-01
    相关资源
    最近更新 更多