一个活动中有多个YouTubePlayerView

时间:2013-03-21 12:05:27

标签: android api youtube

我有一个可以编程方式创建多个YouTubePlayerView的活动,这里是包含每个YouTubePlayerView的类。

public class MyYouTubeView extends LinearLayout implements YouTubePlayer.OnInitializedListener {

private String mYouTubeVideoId;
private YouTubePlayerView mYouTubePlayerView;

public JournalYouTubeView(Activity context, String youTubeVideoId) {
    super(context);
    mYouTubeVideoId = youTubeVideoId;
    String apiKey = context.getResources().getString(R.string.youtube_api_key);
    mYouTubePlayerView = new YouTubePlayerView(context);
    mYouTubePlayerView.setTag(mYouTubeVideoId);
    mYouTubePlayerView.initialize(apiKey, this);
    LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LayoutParams.FILL_PARENT,
            LayoutParams.WRAP_CONTENT);
    int margin = (int) ScreenUtils.dip2pixel(10, context);
    params.leftMargin = margin;
    params.rightMargin = margin;
    addView(mYouTubePlayerView, params);
}

@Override
public void onInitializationFailure(Provider arg0, YouTubeInitializationResult arg1) {

}

@Override
public void onInitializationSuccess(YouTubePlayer.Provider provider,
        final YouTubePlayer player,
        boolean wasRestored) {

    if (!wasRestored) {
        player.cueVideo(mYouTubeVideoId);
    }
}
}

不幸的是,当我在视图层次结构中有多个YouTubePlayerView实例时,这似乎不起作用。在示例API应用程序中,他们似乎在处理多个视频时使用Fragments,但是如果没有对应用程序进行一些重大的重新设计,我就无法使用它们。

1 个答案:

答案 0 :(得分:1)

所以看起来(虽然在文档中没有提到)你每个活动只能托管一个视频播放器。解决方案是使用ThumbNailViews,它将启动一个YouTubePlayerView。