Android用の新しいYoutube APIを使用しています。API を使用して (ListView を使用して) 特定のプレイリストを表示することができました。リストのビデオをクリックすると、その特定のビデオを再生できます。
私の質問はこれです。特定のビデオの詳細を取得するにはどうすればよいですか? 動画のタイトルや再生回数などの詳細。YoutubeThumbnailView/loader、YoutubePlayerView、YoutubePlayer を調べてみましたが、うまくいきません。
これがメイン アクティビティのコードです。さらに詳しい情報が必要な場合はお知らせください。
どんな助けでも大歓迎です。
public class MainActivity extends YouTubeBaseActivity implements YouTubePlayer.OnInitializedListener, YouTubeThumbnailView.OnInitializedListener{
private final static String PLAY_LIST_ID = "XXX";
private final static String DEV_KEY = "XXX";
private YouTubeThumbnailView thumbnailView;
private YouTubeThumbnailLoader loader;
private ArrayList<HashMap<String, YouTubeVideo>> arrayList;
private ListView listView;
private SpecialAdapter adapter;
private int counter;
private YouTubePlayerView playerView;
private YouTubePlayer player;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
String[] keys = new String[]{"key"};
int[] values = new int[]{R.id.imageView1};
arrayList = new ArrayList<HashMap<String, YouTubeVideo>>();
setContentView(R.layout.activity_main);
listView = (ListView)findViewById(R.id.listView1);
listView.setOnItemClickListener(new onListClickListener());
playerView = (YouTubePlayerView)findViewById(R.id.player);
thumbnailView = new YouTubeThumbnailView(this);
thumbnailView.initialize(DEV_KEY, this);
playerView.initialize(DEV_KEY, this);
adapter = new SpecialAdapter(this, arrayList, R.layout.row_layout, keys, values);
}
class onListClickListener implements OnItemClickListener{
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
playerView.setVisibility(View.VISIBLE);
player.cueVideo(arrayList.get(arg2).get("key").videoID);
}
}
@Override
public void onInitializationSuccess(YouTubeThumbnailView arg0,
YouTubeThumbnailLoader arg1) {
loader = arg1;
loader.setPlaylist(PLAY_LIST_ID);
loader.setOnThumbnailLoadedListener(new OnThumbnailLoadedListener() {
@Override
public void onThumbnailLoaded(YouTubeThumbnailView arg0, String videoId) {
HashMap<String, YouTubeVideo> map;
ImageView imageView;
if(loader.hasNext()){
map = new HashMap<String, YouTubeVideo>();
imageView = new ImageView(MainActivity.this);
imageView.setImageDrawable(arg0.getDrawable());
map.put("key", new YouTubeVideo(imageView, videoId));
arrayList.add(map);
loader.next();
}else {
map = new HashMap<String, YouTubeVideo>();
imageView = new ImageView(MainActivity.this);
imageView.setImageDrawable(arg0.getDrawable());
map.put("key", new YouTubeVideo(imageView, videoId));
arrayList.add(map);
listView.setAdapter(adapter);
}
}
@Override
public void onThumbnailError(YouTubeThumbnailView arg0, ErrorReason arg1) {
}
});
}
@Override
public void onInitializationFailure(YouTubeThumbnailView arg0,
YouTubeInitializationResult arg1) {
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
@Override
public void onInitializationFailure(Provider arg0,
YouTubeInitializationResult arg1) {
}
@Override
public void onInitializationSuccess(Provider provider, YouTubePlayer player,
boolean wasRestored) {
this.player = player;
}
@Override
protected void onDestroy() {
if(loader != null) {
loader.release();
}
super.onDestroy();
}
}