我最近做了一个YouTube JukeBox。我有我想做的一切,除非我试图让通知在播放事件上工作/显示,只有在前一个视频已经结束的情况下。JavaScript通知功能不能正常工作
我试图设置一个变量,然后在视频结束为true时更新它,但是当我在play事件中检查它时,它会一直返回“undefined”。
function onPlayerStateChange(event)
{
var videoData = player.getVideoData();
if (event.data == 0)
{
var videend = 1;
player.loadVideoById($("input[name=video]:radio:checked").closest('tr').next().find('input').prop("checked", true).val());
$('.playlist').scrollTo($("input[name=video]:radio:checked").closest('tr'));
}
if (event.data == 1)
{
$("#info").css("display","none");
if(videend == 1)
{
var videend = 0;
new Notification(videoData['author'], {
dir: "auto",
lang: "",
body: videoData['title'],
icon: "http://vman315.com/base/images/Pinkie-Pie-mustache.png",
});
}
document.title = '\u25B6 ' + videoData['title'];
}
}
如果还有人可能提供一些洞察我做错了,我会非常感激。
是的,但是这意味着每次调用'onPlayerStateChange'时都会将变量设置回1,这是每当玩家暂停/播放/缓冲/结束时。目标是只显示新的视频播放。我使用Aurora&IE8编写了所有这些测试。 – vman315
JavaScript中的全局变量 - http://snook.ca/archives/javascript/global_variable 我更新了jsfiddle现在有一个全局变量,以便通知只在该歌曲的第一个播放中播放。 http://jsfiddle.net/83tju/4/ –
我已经尝试过'window.videend',但它没有为我工作,但这个工程。我忘了将'Notification.requestPermission'添加到原始的JSFiddle中,这也许就是为什么它没有要求您的Chrome版本获得批准。 [最终结果](http://jsfiddle.net/83tju/8/),我加了'videonote.onshow = function(){setTimeout(function(){videonote.close()},5000);}'所以他们将在Chrome中关闭。 感谢您的帮助。我会赞成但没有足够的代表。 – vman315