【发布时间】:2014-04-29 16:31:14
【问题描述】:
我坚持执行以下 youtube 方法。
public abstract void loadVideos (List<String> videoIds)
Loads and plays a list of videos.
基本上这是我的代码的一部分。 我的最终目标是当用户单击视频播放的列表项或它自动播放所有三个视频时。 谁能帮帮我。
private static final String1[] arry = {
new String1("Androidify App", "irH3OSOskcE", false),
new String1("Chrome Speed Tests", "nCgQDjiotG0", false),
new String1("Playlist: Google I/O 2012", "PL56D792A831D0C362", true)};
private static final String KEY_CURRENTLY_SELECTED_ID = "currentlySelectedId";
private YouTubePlayerView youTubePlayerView;
private YouTubePlayer player;
private ArrayAdapter<String1> videoAdapter1;
private ListView videoChooser1;
private StringBuilder logString;
private MyPlayerStateChangeListener playerStateChangeListener;
private MyPlaylistEventListener playlistEventListener;
private int currentlySelectedPosition;
private String currentlySelectedId;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.player_controls_demo);
youTubePlayerView = (YouTubePlayerView) findViewById(R.id.youtube_view);
videoChooser1 = (ListView) findViewById(R.id.listView1);
logString = new StringBuilder();
videoAdapter1 = new ArrayAdapter<String1>(this, android.R.layout.simple_list_item_1, arry);
videoChooser1.setAdapter(videoAdapter1);
videoChooser1.setOnItemClickListener(this);
youTubePlayerView.initialize(DeveloperKey.DEVELOPER_KEY, this);
playlistEventListener = new MyPlaylistEventListener();
playerStateChangeListener = new MyPlayerStateChangeListener();
}
@Override
public void onInitializationSuccess(YouTubePlayer.Provider provider, YouTubePlayer player,
boolean wasRestored) {
this.player = player;
player.setPlaylistEventListener(playlistEventListener);
player.setPlayerStateChangeListener(playerStateChangeListener);
if (!wasRestored) {
playVideoAtSelection();
}
}
@Override
protected YouTubePlayer.Provider getYouTubePlayerProvider() {
return youTubePlayerView;
}
private void playVideoAtSelection() {
String1 selectedEntry = videoAdapter1.getItem(currentlySelectedPosition);
if (selectedEntry.id != currentlySelectedId && player != null) {
currentlySelectedId = selectedEntry.id;
if (selectedEntry.isPlaylist) {
player.loadPlaylist(selectedEntry.id);
} else {
player.loadVideo(selectedEntry.id);
player.loadVideos(List<String>,selectedEntry.id);
}
}
}
@Override
public void onItemClick(AdapterView<?> parent, View view, int pos, long id)
{
currentlySelectedPosition = pos;
playVideoAtSelection();
}
@Override
protected void onSaveInstanceState(Bundle state) {
super.onSaveInstanceState(state);
state.putString(KEY_CURRENTLY_SELECTED_ID, currentlySelectedId);
}
@Override
protected void onRestoreInstanceState(Bundle state) {
super.onRestoreInstanceState(state);
currentlySelectedId = state.getString(KEY_CURRENTLY_SELECTED_ID);
}
private void log(String message) {
logString.append(message + "\n");
// eventLog.setText(logString);
}
private final class MyPlaylistEventListener implements PlaylistEventListener {
@Override
public void onNext() {
log("NEXT VIDEO");
}
@Override
public void onPrevious() {
log("PREVIOUS VIDEO");
}
@Override
public void onPlaylistEnded() {
log("PLAYLIST ENDED");
}
}
private final class MyPlayerStateChangeListener implements PlayerStateChangeListener {
String playerState = "UNINITIALIZED";
@Override
public void onLoading() {
playerState = "LOADING";
log(playerState);
}
@Override
public void onLoaded(String videoId) {
playerState = String.format("LOADED %s", videoId);
log(playerState);
}
@Override
public void onAdStarted() {
playerState = "AD_STARTED";
log(playerState);
}
@Override
public void onVideoStarted() {
playerState = "VIDEO_STARTED";
log(playerState);
}
@Override
public void onVideoEnded() {
playerState = "nCgQDjiotG0";
log(playerState);
}
@Override
public void onError(ErrorReason arg0) {
// TODO Auto-generated method stub
}
}
private static final class String1 {
public final String title;
public final String id;
public final boolean isPlaylist;
public String1(String title, String videoId, boolean isPlaylist) {
this.title = title;
this.id = videoId;
this.isPlaylist = isPlaylist;
}
@Override
public String toString() {
return title;
}
}
【问题讨论】:
标签: android string list youtube-api android-youtube-api