Android Youtube API:YoutubeView不可见时如何播放视频

时间:2015-04-15 04:44:56

标签: android android-youtube-api

我正在尝试使用Android Youtube API播放Youtube视频。我使用YoutubePlayerFragment并将其添加到视图容器中。当视图容器可见时,它很有效。然后我尝试使视图容器不可见。它停止工作并抛出错误“YouTube视频播放停止,因为播放器的视图不可见”。我想知道无论如何我可以播放隐藏视频的视频吗?

3 个答案:

答案 0 :(得分:1)

这是不可能的,即使你尝试做一些技巧。

这是因为SDK会监控当前Window的所有视图树,因此可以查看YouTube视频容器上是否放置了某些内容。

答案 1 :(得分:0)

我找到了解决方法。我们可以为YoutubePlayerFragment设置视图容器的Alpha(0.01f)。通过这种方式,Youtube API被欺骗以相信该视图仍然是可见的。

答案 2 :(得分:0)

Samle my problem,但我用这段代码解决了这个问题。

我初始化了2个变量:

public class VideoPlay extends YouTubeBaseActivity implements YouTubePlayer.OnInitializedListener {
        YouTubePlayerView youTubePlayerView ;
        YouTubePlayer _YouTubePlayer;

此功能会更改您的VIDEO_ID

public void ChangeVIDEO_ID(YouTubePlayer player, String keyID){
    player.cueVideo(keyID);
}

我在ListView中点击了一个LinearLayout,当我点击ListView中的这样的内容时:

lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
    @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
            ChangeVIDEO_ID(_YouTubePlayer, mang.get(position).key);
        }
});

我的onInitializationSuccess()已更改如下:

public void onInitializationSuccess(Provider provider, YouTubePlayer player, boolean wasRestored) {
    _YouTubePlayer = player;
    if (!wasRestored) {
        Bundle bu = getIntent().getExtras();
        if (bu != null) {
            String keyID = bu.getString("key");
            _YouTubePlayer.cueVideo(keyID);
        } else {
            _YouTubePlayer.cueVideo(VIDEO_ID);
        }

    }
} }