HTML5音频,测试是否使用javascript播放

HTML5音频,测试是否使用javascript播放,javascript,php,html,audio,cookies,Javascript,Php,Html,Audio,Cookies,好的,我的网站上有音频,我希望用户一次只能播放一个音频,不管用户打开了多少选项卡或窗口。因此,如果用户在另一个选项卡中开始一首新歌,另一首就停止播放。快速免责声明:我现在可以使用它,但这不是一个好方法。现在我有了它,当用户启动一个音频文件时,它会为回放实例创建一个带有随机id的php会话。然后,如果播放一首歌曲,它会不断向服务器发送ajax,以查看会话id是否与歌曲的播放id相同。如果id不相同,则播放停止。所以现在它100%按照我的要求工作,但是它向服务器发送了如此多的请求,所以我知道必须有更

好的,我的网站上有音频,我希望用户一次只能播放一个音频,不管用户打开了多少选项卡或窗口。因此,如果用户在另一个选项卡中开始一首新歌,另一首就停止播放。快速免责声明:我现在可以使用它,但这不是一个好方法。现在我有了它,当用户启动一个音频文件时,它会为回放实例创建一个带有随机id的php会话。然后,如果播放一首歌曲,它会不断向服务器发送ajax,以查看会话id是否与歌曲的播放id相同。如果id不相同,则播放停止。所以现在它100%按照我的要求工作,但是它向服务器发送了如此多的请求,所以我知道必须有更好的方法来使用cookie或其他东西。如果可以,请提供帮助。

这可以通过HTML5网络存储和跨选项卡通信来实现。查看一个示例,h.

确定,因此我尝试实现您的建议,但无法在另一个选项卡/窗口中获取会话存储值。它似乎只适用于一种情况。如果我有3首歌曲正在运行,那么每首歌曲(选项卡/窗口)对于我指定的会话存储密钥都有自己的值。它们是否恰好位于不同的域上?另外,请确保您使用的是本地存储,而不是会话存储。IE localStorage.setItem('bear','black');然后在同一网站的下一个选项卡中运行localStorage.getItem('bear');你应该看到结果。会话存储只在同一个窗口中工作,本地存储通过同一个域上的所有选项卡保持。是的,谢谢。我在看到这个之前就知道了,但那是我的错,哈哈。我让它工作完全一样,我有它之前,但与本地存储。太棒了。非常感谢!真是太棒了!祝你好运