我想制作一个应用程序,该应用程序的一部分与 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/