HTML5音频行为

ser*_*dar 23 javascript html5 android webkit html5-audio

我在HTML5页面中有一个音频元素.我开始播放音频然后暂停.之后我按回家按钮返回主屏幕并拨打电话.当呼叫结束时,音频元素自动恢复.这发生在Android 4.0.3上

问题是,这不是预期和期望的行为.不幸的是,当浏览器在后台运行时,不会抛出javascript事件,我无法使用Javascript捕获并阻止此行为.

任何帮助表示赞赏.提前致谢.

ark*_*lel 8

我没有ICS手机试试,但这就是我要做的:

pause显然跟踪音频时间位置.4.0似乎会自动恢复暂停音频文件的位置

所以不要暂停你stop的音频文件.不幸的是,stopHTML5不支持.

你有一个棘手的解决方案:

  • pause 音频
  • 存储位置: trackPos = myTrack.currentTime;
  • 商店数量: trackVol = myTrack.volume;
  • 把它静音: myTrack.volume = 0;

然后,当用户回来并再次点击播放时:

如果trackPos存在

  • 将起始位置设置为trackPos: myTrack.currentTime = trackPos;
  • play
  • mytrack.volume = trackVol;
  • delete window.trackPos;

这很棘手但如果您使用JavaScript控件应该可以工作.

如果您使用本机控件,则播放和暂停将由浏览器的界面管理.然后你应该存储位置并开始变得真实脏:

  • 删除来源:

    myTrack.removeChid(yourSCs)

  • 恢复您的SRC和焦点位置

  • 等待用户玩

这是一个快速而肮脏的草案,没有经过测试.但它应该工作

///编辑///

一个有效的Javascript演示,至少在我的桌面上.在你的ICS上尝试: JSFiddle

(保存文件,我想你不能在手机上正确启动jsfiddle)