【发布时间】:2017-04-19 08:57:02
【问题描述】:
假设我在列表视图中有一个对象,其中一个 YouTube videoId 作为参数之一。我知道如何使用 OnItemClickListener 以及如何通过意图传递额外内容。当我到达接收活动时,我必须在 onCreate 方法中调用 intent.getStringExtra("key") 。当我调用 cueVideo(videoId) 方法时,我需要在另一个方法 onInitializationSuccess 中检索到的 videoId。你能否解释一下我要做什么以及为什么这样我才能理解自己的成长。
public class PlayVideo extends YouTubeBaseActivity
implements YouTubePlayer.OnInitializedListener{
private String GOOGLE_API_KEY = "AIzaSyCKcPfcvaFtN_izxXg7lzEcKVdF0A-7y1Q";
String VIDEO_ID = "ZHAe-SaplCw";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_play_video);
YouTubePlayerView playerView = (YouTubePlayerView) findViewById(R.id.player_view);
playerView.initialize(GOOGLE_API_KEY, this);
//Get videoId from current ListView Object
Intent getVideoId = getIntent();
String videoId = getVideoId.getStringExtra("videoIdExtra");
}
@Override
public void onInitializationSuccess(YouTubePlayer.Provider provider, YouTubePlayer youTubePlayer, boolean wasRestored) {
Toast.makeText(this, "Video Playing", Toast.LENGTH_SHORT).show();
youTubePlayer.setPlayerStateChangeListener(playerStateChangeListener);
youTubePlayer.setPlaybackEventListener(playbackEventListener);
if(!wasRestored){
youTubePlayer.cueVideo(VIDEO_ID);
}
}
private YouTubePlayer.PlaybackEventListener playbackEventListener = new YouTubePlayer.PlaybackEventListener() {
@Override
public void onPlaying() {
}
@Override
public void onPaused() {
}
@Override
public void onStopped() {
}
@Override
public void onBuffering(boolean b) {
}
@Override
public void onSeekTo(int i) {
}
};
YouTubePlayer.PlayerStateChangeListener playerStateChangeListener = new YouTubePlayer.PlayerStateChangeListener() {
@Override
public void onLoading() {
}
@Override
public void onLoaded(String s) {
}
@Override
public void onAdStarted() {
}
@Override
public void onVideoStarted() {
}
@Override
public void onVideoEnded() {
}
@Override
public void onError(YouTubePlayer.ErrorReason errorReason) {
}
};
@Override
public void onInitializationFailure(YouTubePlayer.Provider provider, YouTubeInitializationResult youTubeInitializationResult) {
Toast.makeText(this, "Play Failed", Toast.LENGTH_SHORT).show();
}
}
【问题讨论】:
-
你已经有
getVideoId.getStringExtra,请问有什么问题? -
脑洞大开,我才发现我可以做一个全局变量,在onCreate方法中初始化,然后在onInitializationSuccess方法中调用。但这就是我的问题所在。
-
不用担心。如果您愿意,请随时接受我的回答
标签: java android android-intent youtube-api