如何阻止YouTube视频播放

时间:2018-03-15 01:07:35

标签: java android youtube youtube-api

嗨大家搞乱了youtube api for android。我已经完成了所有设置和工作。即时通讯使用我的firebase数据库以列表的形式将所有相关信息发送到我的应用程序。列表显示的所有作品都很棒,视频从列表中播放。并进入全屏确定..但如果我想在没有任何反应后点击我的列表中的另一个视频。所以我假设我必须停止并清除我的YouTubePlayerView,但我不知道该怎么做

这就是我从firebase获取字符串的方式

 Dl_Strings dlStrings = dataSnapshot.getValue(Dl_Strings.class);
        Downloadscount.add(" " + String.valueOf(dlStrings.downloads));
        AppNameList.add(dlStrings.name);
        urlList.add(dlStrings.url);

这是我抓住网址并将其添加到我的YouTube播放器

的地方
mlv.setOnItemClickListener(new AdapterView.OnItemClickListener() {


            @Override
            public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
                urlmain = urlList.get(i).toString();
                tag = TAGGER.get(i).toString();


                App_DownLoadCounter();
                YouTubePlayerView myoutubeplayerView = (YouTubePlayerView) ((Activity)mContext).findViewById(R.id.youtube);

                YouTubePlayer.OnInitializedListener mOninitial;

                mOninitial = new YouTubePlayer.OnInitializedListener() {
                    @Override
                    public void onInitializationSuccess(YouTubePlayer.Provider provider, YouTubePlayer youTubePlayer, boolean b) {
                        youTubePlayer.loadVideo(urlmain);
                    }

                    @Override
                    public void onInitializationFailure(YouTubePlayer.Provider provider, YouTubeInitializationResult youTubeInitializationResult) {

                    }
                };

2 个答案:

答案 0 :(得分:1)

我认为您的代码段中缺少部分代码,但这就是为什么这不起作用:

YouTube播放器只需初始化一次。 loadVideo未被调用,因为onInitializationSuccess仅在您第一次初始化播放器时被调用。

您可以在首次初始化时简单地保留YouTubePlayer youTubePlayer的引用,并在需要时重新使用它。

YouTubePlayer youTubePlayer;

public void onCreate() {
  super.onCreate();

  // initialize player here and save 
  // ...
  @Override
  public void onInitializationSuccess(YouTubePlayer.Provider provider, YouTubePlayer youTubePlayer, boolean b) {
     this.youTubePlayer = youTubePlayer;
  }

}


// in your listener
mlv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
  @Override
  public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
      String videoID = urlList.get(i).toString();
      this.youTubePlayer.loadVideo(videoID);
  }
}

答案 1 :(得分:1)

根据Android Player API,您可以使用release()方法执行此操作:

public abstract void release()

  

停止任何加载或视频播放并释放任何系统资源   此YouTubePlayer使用。

     

请注意,在调用此方法之后,与此进行任何进一步的交互   YouTubePlayer是被禁止的。必须创建一个新实例   重新启用播放。