我正在尝试将两个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);
}
}
答案 0 :(得分:11)
我的理解是这是预期的行为。 (它可能与也可能没有与硬件加速视频播放相关的限制有关。)您所看到的是YouTube Android Player SDK强制执行一次一个视频限制。
答案 1 :(得分:0)
您甚至不需要一次加载两个视频,只需使用cueVideos()函数,并在其中放入一个列表字符串变量,它将播放一个又一个视频。非常方便:)