活动中的Android多个YouTube视频

Eri*_*ran 4 youtube android youtube-api

我想在彼此之上安装两个YouTubePlayerView.他们都出现了,但只有一个似乎提示任何视频.第二个(youTubeView2)只是黑色.没有错误.知道我做错了什么吗?

JSONObject data;
JSONArray array;

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.playerview_demo);

YouTubePlayerView youTubeView = (YouTubePlayerView) findViewById(R.id.youtube_view);
youTubeView.initialize(DeveloperKey.DEVELOPER_KEY, this);
YouTubePlayerView youTubeView2 = (YouTubePlayerView) findViewById(R.id.youtube_view2);
youTubeView2.initialize(DeveloperKey.DEVELOPER_KEY, this);



//JSONObject json = getJSONfromURL("http://gdata.youtube.com/feeds/api/users/rhettandlink2/uploads?v=2&alt=jsonc");

try{
    JSONObject json = new RetreiveFeedTask().execute().get();
    data = json.getJSONObject("data");
    array = data.getJSONArray("items");
    //Log.d("num vids", ""+id[1].toString());
    for (int i = 0; i < array.length(); i++) {
        final JSONObject item = array.getJSONObject(i);
        final JSONObject player = item.getJSONObject("player");
        final String url = player.getString("default");
        // The url is that of the video to be played
        //Log.d("GMM Videos", url.toString());


        final String id = item.getString("id");


    }}
catch(JSONException e) {
    Log.e("GMM Videos", "Error parsing data "+e.toString());
 } catch (InterruptedException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
  } catch (ExecutionException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
  }



}

@Override
public void onInitializationSuccess(YouTubePlayer.Provider provider, YouTubePlayer player,
  boolean wasRestored) {
if (!wasRestored) {
    List<String> myList = new ArrayList<String>();
    try{
    for (int i = 0; i < array.length(); i++) {
        final JSONObject item = array.getJSONObject(i);
        final JSONObject jplayer = item.getJSONObject("player");
        final String url = jplayer.getString("default");
        // The url is that of the video to be played
        //Log.d("GMM Videos", url.toString());


        final String id = item.getString("id");
        //allVideos[i] = player.cueVideo(id);
        myList.add(id);

    }}
    catch(JSONException e) {
        Log.e("GMM Videos", "Error parsing data "+e.toString());
   }



  player.cueVideos(myList);
}
}
Run Code Online (Sandbox Code Playgroud)

Jef*_*ick 11

我的理解是这是预期的行为.(它可能与也可能没有与硬件加速视频播放相关的限制有关.)您所看到的是YouTube Android Player SDK强制执行一次一个视频限制.

  • 是的,看起来你是对的.诀窍是使用多个缩略图打开一个播放器(片段,在我的情况下和api演示的情况).谢谢. (2认同)