jQuery移动页面导航后仍在播放音频

Posted

技术标签:

【中文标题】jQuery移动页面导航后仍在播放音频【英文标题】:audio still playing after jquery mobile page navigation 【发布时间】:2013-04-23 16:39:45 【问题描述】:

如果确实在其他地方提出并回答了这个问题,我会先道歉......我已经改写和谷歌搜索了几天来解决这个问题,但没有运气。

我承担了我的网页设计顶点课程的代码编写职责,我们正在将印刷出版物转换为数字格式。我们决定使用 jquery-mobile 框架。在此之前我没有使用 jquery 的经验,但我学得很快并且非常喜欢它。我在我们的网站上使用 jquery-ui,它使用一个带有 data-role="page" 导航的长 index.html 文件。网站内有书面作品,其中一些有音频旁白。

我已经使用了html音频标签:

<audio controls>
  <source src="audio/source.mp3" />
  <source src="audio/source.ogg" />
</audio>

音频播放得很好,但是当我导航到另一个“页面”时,音频不会停止,除非刷新整个站点或单击暂停按钮。我所理解的情况是,虽然在视觉上,该网站是从一个页面到另一个页面,但浏览器只是在一个 html 文件中移动,只显示它被告知要显示的部分。

是否有一些基本的 js 代码可以插入到我的页面中某处,告诉它当单击链接或按钮时,停止正在播放的任何音频?让我重申一下,导航都是在一个 html 文件中完成的,而不是通过链接到不同的 html 文件来完成的。

(1000 为冗长的故事道歉....认为我应该具体)

感谢所有帮助和建议

【问题讨论】:

您能否提供用于导航到另一个“页面”的代码?一旦你离开,你可以做类似$('audio').stop(); 每个页面被&lt;div data-role="page" id="some-page"&gt;&lt;/div&gt;分割,导航通过&lt;a href="#some-page"&gt;Some Page&gt;&lt;/a&gt;完成 (抱歉……还在想办法解决***的问题) 很高兴我能帮上忙 :) jQuery 很有趣且易于理解。祝你好运! 谢谢先生。学习它很有趣,但由于项目的时间限制,我只完成了亮点。学期结束后会更深入。 【参考方案1】:

当导航到另一个页面时pagebeforehide 将触发。在此阶段,在该页面中找到audio.pause()

$(document).on('pagebeforehide', function () 
 $(this).find('audio').each(function () 
  $(this)[0].pause();
 );
);

【讨论】:

天哪,你现在在我的遗嘱中!!!!这不是很多,但你得到了一切!非常感谢奥马尔! 我认真地解决这个问题已经一个多星期了,但我对 js/jquery 的理解还不够,无法将不同的函数翻译成我需要的精确语法......所以再说一次,谢谢! 更新:该代码只暂停了音频标签的第一个实例,但之后没有。我碰巧在第一次测试它纯属巧合。我将如何定位音频标签的所有实例。循环遍历我认为的某种数组,但我不确定。 谢谢奥马尔!你是最棒的! @Doran 哈哈谢谢哥们。如果您需要进一步的帮助,请告诉我。

以上是关于jQuery移动页面导航后仍在播放音频的主要内容,如果未能解决你的问题,请参考以下文章

jQuery 移动版 |页面间导航

如何使用 Jquery 停止所有音频播放

Jquery移动子页面刷新

如何在H5页面里调用手机导航?

Android WebView JQuery 移动页面加载问题

如何在不在页面底部的 div(页面的一部分)中添加 Jquery Mobile 导航栏?