java - Android,YouTube API - 如何在按下按钮时更改视频

标签 java android api youtube

我想制作一个应用程序,该应用程序的一部分与 YouTube 数据 API 有关。我设置了它,并设法在按下按钮时显示和播放视频。但我希望视频当我再次按下按钮时切换到另一个视频。 我有一个包含我所有视频的字符串数组。 这是我的代码:

public class HomeScreen extends YouTubeBaseActivity {
private YouTubePlayerView youTubePlayerView;
private YouTubePlayer.OnInitializedListener onInitializedListener;

@Override
public void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);
    setContentView(R.layout.home_activity);
    Typeface tf = Typeface.createFromAsset(getAssets(), "fonts/title.ttf");
    TextView titleText = (TextView) findViewById(R.id.titleText);
    titleText.setTypeface(tf);
    titleText.setText(R.string.app_name);
    titleText.setTextSize(30);
    Button b;
    b = (Button) findViewById(R.id.button);
    final theList list = new theList();
    videoList.add("code here");
    videoList.add("code here");
    videoList.add("code here");
    videoList.add("code here");
    final Random r = new Random();
    youTubePlayerView = (YouTubePlayerView) findViewById(R.id.view);
    onInitializedListener = new OnInitializedListener() {
        @Override
        public void onInitializationSuccess(YouTubePlayer.Provider provider, YouTubePlayer youTubePlayer, boolean b) {
            int i1 = r.nextInt(videoList.getIncrement() - 0) + 0;
            youTubePlayer.loadVideo(videoList.getLink());

        }

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

        }
    };

    b.setOnClickListener(new View.OnClickListener() {
        public void onClick(View view) {

            youTubePlayerView.initialize("282906853585-nrprlo5qkiervdst29262phctlb6hcd5.apps.googleusercontent.com", onInitializedListener);
        }
    });


}
}

最佳答案

不要一次又一次地初始化 youtube 播放器。相反,添加对 YouTubePlayer 的地球引用并在 onInitializationSuccess 中分配它。并使用该 YouTubePlayer 实例更改视频。

希望对您有所帮助!

`

public class HomeScreen extends YouTubeBaseActivity {   
private YouTubePlayerView mYouTubePlayerView;
private YouTubePlayer.OnInitializedListener mOnInitializedListener;
private  YouTubePlayer mYouTubePlayer;
private Button mButton;


private final String VIDEO_CODE="replace with video code";
private final String API_KEY="replace with your API key ";

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_home);
    youTubePlayerSetup();
    mButton  = findViewById(R.id.button);
    mButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            mYouTubePlayer.cueVideo("replace with new video code");
        }
    });
}

private void youTubePlayerSetup(){

    mYouTubePlayerView = (YouTubePlayerView) findViewById(R.id.youtube_player_view);
    mOnInitializedListener = new YouTubePlayer.OnInitializedListener() {

        @Override
        public void onInitializationSuccess(YouTubePlayer.Provider provider, YouTubePlayer youTubePlayer, boolean b) {
            if(!b){
                mYouTubePlayer =youTubePlayer;
                mYouTubePlayer.cueVideo(VIDEO_CODE);
            }
        }

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

        }
    };

    mYouTubePlayerView.initialize(API_KEY,mOnInitializedListener);
}}

`

关于java - Android,YouTube API - 如何在按下按钮时更改视频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40819109/

相关文章:

android - 发布应用程序 android 时出现问题

c++ - 如何使用 C API 为 MySQL 查询设置超时

JAVA - JTable & Model 的奇怪问题(可能是线程问题)

java - 带有额外信息的 Bean 验证

java - HandlerThread 没有在后台运行?

android - 检查为自定义 ROM 绘制应用程序的权限

java - Ant Sonar 将多个报告合并为一个

java - 控制随机数

json - 在服务器端缓存 JSON 对象

r - 在 R 中使用管道工 API 进行 Oauth