javascript - 获取返回随机值的函数的当前值

标签 javascript jquery youtube-api youtube-javascript-api

我想做的事情是获取当前正在播放的 YouTube 视频的当前视频 ID 并将其显示在 div 中。

这是我的 YT iframe API 代码(如 Google 开发网站上的基本示例):

  var player;
  function onYouTubeIframeAPIReady() {
    player = new YT.Player('player', {
      height: '390',
      width: '640',
      videoId: currentVideoId,
      events: {
        'onReady': onPlayerReady,
        'onStateChange': onPlayerStateChange,
        'onError': onError,
      },

    });
  }

如您所见,VideoId(将播放的第一个视频)由名为“currentVideoId”的变量设置,该变量之前的设置如下:

var currentVideoId = '9z4Kft47kBM'

我想在div中显示当前ID

<div id="currentVideoDiv"></div>

为此,我使用了以下代码:

$('#currentVideoDiv').html('Currently Playing:' + currentVideoId);

到目前为止一切顺利,它正确显示了我的第一个视频ID。

现在,第一个视频结束后,onStateChange 事件将调用此函数:

function onPlayerStateChange(event) {
 if(event.data === 0) {             
     swapVideo();      
        }
  }

“swapVideo”函数将调用函数 getId();

 function swapVideo() {   

 player.stopVideo();
 player.loadVideoById(getId()); 
 }

getId() 函数将从 xml 文件中获取随机 videoID,不必担心细节。

 function getId() {
 return videos[Math.floor(Math.random() * videos.length)];


}

现在正在播放具有新 videoId 的新视频,但 currentVideoDiv 中的值仍然相同,因为没有任何更改。

问题是,如何获取 getId 函数随机设置的新的当前 id 并将其显示在 currentVideoDiv 中?

最佳答案

这是基于您在 loadVideoById 之后更新显示 ID 的假设

function swapVideo() {

 var currentVideoId = getId();

 player.stopVideo();
 player.loadVideoById(currentVideoId); 

 $('#currentVideoDiv').html('Currently Playing:' + currentVideoId);

}

关于javascript - 获取返回随机值的函数的当前值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20274897/

相关文章:

javascript - 获取 JSON 标签内的所有 JSON 实例 (JAVASCRIPT)

javascript - 使用两个 Ajax 调用来发布然后检索数据

python - Youtube Data API v3 获取完整的 watchHistory

javascript - 对于提供的参数,Wasm 编译超出了此上下文中的内部限制

javascript - 单击 TD 时显示唯一的子 DIV - jQuery/Javascript

javascript - 更新模型但保留整个 Backbone 集合

javascript - 无法读取未定义的属性 get Riders

javascript - 数据表,在其中为单个行格式编写自定义 HTML 代码

javascript - 带有自定义 YouTube 控件的 jQuery Mobile 弹出窗口

Youtube Data API - 如何获取我的私有(private)和未列出的视频