gpt4 book ai didi

jquery - iPhone 上的 SoundManager2 - 在 jQuery Load 上没有播放声音

转载 作者:行者123 更新时间:2023-12-03 00:04:16 28 4
gpt4 key购买 nike

我正在尝试使用 SoundManager2 作为 iPhone Web App 的一部分,以便在使用 jQuery 提交表单后播放声音。播放的特定声音取决于结果,因此结果页面设置了一个变量来标识要播放的声音文件。

这一切都可以在桌面上顺利运行,但在 iPhone 上运行时,它会失败。

iPhone 上的调试控制台显示它正在尝试...

1124: SMSound.play(): "ValidSound" is loading - attempting to play...
1124: SMSound.play(): "ValidSound" is starting to play
1124: setPosition(0): delaying, sound not ready
1124: HTML5::loadstart: ValidSound
1124: HTML5::suspend: ValidSound

...但每次播放都没有声音。

关于可能导致此失败的任何想法?我已经包含了主页的代码,以及使用 jQuery 返回的“响应”页面的示例:

主页
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<script src="http://code.jquery.com/jquery-latest.js"></script>
<script type="text/javascript" src="sm/script/soundmanager2.js"></script>
<script>
soundManager.setup({

url: 'sm/swf/',
useHTML5Audio: true,

onready: function() {

soundManager.createSound({
id: 'ValidSound',
useHTML5Audio: true,
preferFlash: false,
url: 'http://www.example.com/example sound.mp3'
});

}

});
</script>

</head>

<body onload="window.top.scrollTo(0,1);">

<div class="scannerform">
<form id="scanner" name="scanner" method="post" action="ok.php">
<input type="text" name="scan" id="scan" />
<input type="submit" name="button" id="button" value="Submit" />
</form>
</div>

<div class="loadingDiv" id="loadingDiv">Loading...</div>
<div class="wrapper" id="wrapper"><div name="data" id="data"></div></div>

<script>
$('#loadingDiv')
.hide()
.ajaxStart(function() {
$(this).show();
})
.ajaxStop(function() {
$(this).hide();
})
;

$("#scanner").submit(function(event) {

$("#loadingImage").show();

event.preventDefault();
var $form = $( this ),
scanned_data = $form.find( 'input[name="scan"]' ).val(),
url = $form.attr( 'action' );

$.post( url, { scanned_data: scanned_data },
function( data ) {
var content = $( data );
$( "#data" ).empty().append( content );
$("#loadingImage").hide();
if (playSound) playSound();
soundManager.play(SoundToPlay);
}
);
});
</script>
</body>
</html>

回复
<script>
function playSound()
{
SoundToPlay="ValidSound";
}
</script>

<div id="example">Hello World</div>

谢谢你的帮助!

J。

最佳答案

你知道 iPhone Safari 应用了声音限制吗?基本上,如果用户以某种方式(通过触摸屏)与页面交互,它就不会播放声音。
所以忘记通过“onLoad”或任何其他事件播放的自动声音。

虽然使用 SoundManager2 和我的 iPhone,但有时我觉得它有点棘手。我很确定在我的应用程序中手指单击至少 1 次后它会自动播放声音(甚至几个)(例如关闭初始 html 弹出窗口(基本上))

所以至少检查一下这个线索......

托马斯

资源:

http://buildingwebapps.blogspot.com/2012/04/state-of-html5-audio-in-mobile-safari.html

http://blog.logicking.com/2012/03/cross-platform-sounds-for-html5-games.html

关于jquery - iPhone 上的 SoundManager2 - 在 jQuery Load 上没有播放声音,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11791949/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com