iPad HTML5音频曲目未重置
出于某种奇怪的原因,HTML5音频API不允许我访问iOS 4和iOS 5中用于iPad和iPod的currentTime。每当播放音频元素时,我都需要调整currentTime,但它的行为就像当前时间不可访问一样。我到处都在寻找答案,但我想不出来。我下面的代码在所有现代浏览器中都能正常工作,所以我有点不知所措 我的HTML标记iPad HTML5音频曲目未重置,ipad,ios5,ios4,ipod,html5-audio,Ipad,Ios5,Ios4,Ipod,Html5 Audio,出于某种奇怪的原因,HTML5音频API不允许我访问iOS 4和iOS 5中用于iPad和iPod的currentTime。每当播放音频元素时,我都需要调整currentTime,但它的行为就像当前时间不可访问一样。我到处都在寻找答案,但我想不出来。我下面的代码在所有现代浏览器中都能正常工作,所以我有点不知所措 我的HTML标记 <p> <a class="audio" href="assets/audio/ambient-sounds-1.mp3" data-flas
<p>
<a class="audio" href="assets/audio/ambient-sounds-1.mp3" data-flash="http://athens.sierrabravo.net/~ablue/plato/videoplayer/assets/audio/niftyplayer.swf" data-mp3="http://athens.sierrabravo.net/~ablue/plato/videoplayer/assets/audio/ambient-sounds-1.mp3" data-ogg="http://athens.sierrabravo.net/~ablue/plato/videoplayer/assets/audio/ambient-sounds-1.ogg">
Ambient Sounds
<span class="audio-play">Play</span>
<audio preload="">
<source preload="" src="http://athens.sierrabravo.net/~ablue/plato/videoplayer/assets/audio/ambient-sounds-1.mp3" type="audio/mpeg">
<source preload="" src="http://athens.sierrabravo.net/~ablue/plato/videoplayer/assets/audio/ambient-sounds-1.ogg" type="audio/ogg">
</audio>
</a>
</p>
<p>
<a class="audio" href="assets/audio/city_street.mp3" data-flash="http://athens.sierrabravo.net/~ablue/plato/videoplayer/assets/audio/niftyplayer.swf" data-mp3="http://athens.sierrabravo.net/~ablue/plato/videoplayer/assets/audio/city_street.mp3" data-ogg="http://athens.sierrabravo.net/~ablue/plato/videoplayer/assets/audio/city_street.ogg">
City Street Sounds
<span class="audio-play">Play</span>
<audio preload="">
<source preload="" src="http://athens.sierrabravo.net/~ablue/plato/videoplayer/assets/audio/city_street.mp3" type="audio/mpeg">
<source preload="" src="http://athens.sierrabravo.net/~ablue/plato/videoplayer/assets/audio/city_street.ogg" type="audio/ogg">
</audio>
</a>
</p>
<p>
<a class="audio" href="#" data-flash="http://athens.sierrabravo.net/~ablue/plato/videoplayer/assets/audio/niftyplayer.swf" data-mp3="http://athens.sierrabravo.net/~ablue/plato/videoplayer/assets/audio/crash.mp3" data-ogg="http://athens.sierrabravo.net/~ablue/plato/videoplayer/assets/audio/crash.ogg">
Loud Crash
<span class="audio-play">Play</span>
<audio preload="">
<source preload="" src="http://athens.sierrabravo.net/~ablue/plato/videoplayer/assets/audio/crash.mp3" type="audio/mpeg">
<source preload="" src="http://athens.sierrabravo.net/~ablue/plato/videoplayer/assets/audio/crash.ogg" type="audio/ogg">
</audio>
</a>
</p>
关于为什么我的代码不起作用,iOS 4和iOS 5需要完全销毁整个音频元素(糟糕的解决方案,但它可以工作)。如果你遇到了我的问题,这里有一个关于如何解决这个问题的简要说明
关于为什么我的代码不起作用,iOS 4和iOS 5需要完全销毁整个音频元素(糟糕的解决方案,但它可以工作)。如果你遇到了我的问题,这里有一个关于如何解决这个问题的简要说明
我也有同样的问题,谷歌发现了这个页面和下面的页面
这家伙可能找到了更详细的答案。我也有同样的问题,用谷歌搜索找到了这个页面和下面的页面
这家伙可能找到了更详细的答案。我遇到了这些类型的问题,我也开始用那种不顾一切的方法来解决这个问题,包括重新创建音频组件、重新加载源等等 一两天前,我发现媒体内容的来源必须是“纯”的,才能在ipad上成功使用 我想用“纯”来表达所有未被先前代码“转化”的内容,这些代码可以在元数据到达ipad客户端之前更改或删除元数据 在我目前正在进行的项目中,我发现使用Ipad,我无法重放或遍历“documents”文件夹中的任何内容,但如果我得到该文件并移动到其他地方,它工作得很好,我可以在Ipad上重放它,进入我希望的第二分钟,等等 在我的例子中,一个.htaccess命令我的apache服务器通过一个“download.php”发送“get”查询,这个“download.php”检查权限并做一些奇怪的事情,然后这个download.php将文件发送到客户端,但这不是一个好的方式,也不是ipad喜欢的方式
我删除了.htaccess绑定,ipad再次获得了良好的音频处理。(那download.php无论如何没有太多用处…我遇到了这些类型的问题,我也开始用那种不顾一切的方法来解决这个问题,包括重新创建音频组件、重新加载源代码等等 一两天前,我发现媒体内容的来源必须是“纯”的,才能在ipad上成功使用 我想用“纯”来表达所有未被先前代码“转化”的内容,这些代码可以在元数据到达ipad客户端之前更改或删除元数据 在我目前正在进行的项目中,我发现使用Ipad,我无法重放或遍历“documents”文件夹中的任何内容,但如果我得到该文件并移动到其他地方,它工作得很好,我可以在Ipad上重放它,进入我希望的第二分钟,等等 在我的例子中,一个.htaccess命令我的apache服务器通过一个“download.php”发送“get”查询,这个“download.php”检查权限并做一些奇怪的事情,然后这个download.php将文件发送到客户端,但这不是一个好的方式,也不是ipad喜欢的方式
我删除了.htaccess绑定,ipad再次获得了良好的音频处理。(该download.php无论如何没有太多用处…它返回了什么错误?实际上,它没有因为if(audio.currentTime)而触发错误。但是如果我试图强制设置currentTime,它会显示“试图使用一个不可用或不再可用的对象。”O并且这个错误会触发所有未单击的元素,不是单击的元素,因为它似乎已成功加载到内存中。看起来iOS的答案可能只是使用一个音频元素,并在需要播放新文件时替换源。现在进行测试,在我完成实验后会发布更多信息,除非其他人在此之前提出更好的解决方案。它会返回什么错误?实际上它不会因为if(audio.currentTime)而触发错误。但是如果我试图强制设置currentTime,它会显示“试图使用一个不可用或不再可用的对象。”O并且这个错误会触发所有未单击的元素,不是单击的元素,因为它似乎已成功加载到内存中。看起来iOS的答案可能只是使用一个音频元素,并在需要播放新文件时替换源。现在测试,当我完成实验后会发布更多信息,除非之前有人提出更好的解决方案。我花了很多时间试图让他的解决方案发挥作用。出于某种原因,iOS 4很遗憾地拒绝合作。我花了很多时间试图让他的解决方案发挥作用。出于某种原因,iOS4很遗憾地拒绝合作。问题不在于数据传输,而在于它的iPad内存缓冲。谢谢分享,以前从未听说过这个问题。问题不在于数据传输,而在于iPad的内存缓冲。谢谢分享,以前没听说过这个问题。
AudioPlayer = {
init: function () {
var player = this;
this.audio = $('.audio'); // Save and cache all audio elements so they can be targeted by mass stop()
player.audio.each( function() {
// Bind each audio element
player.bind($(this));
});
},
bind: function (object) {
var player = this;
object.bind('touchstart click', function() {
// get the real DOM element, not the jQuery array
var audio = $(this).find('audio').get(0);
if(audio.paused) { // Check if its playing
player.play(audio);
}
else {
player.stop(audio);
}
return false;
});
},
play: function(audio) {
// Stop all existing audio elements and set them to 0
this.audio.each( function() {
var audioOther = $(this).find('audio').get(0);
audioOther.pause();
});
// Play the audio element
if(audio.currentTime) audio.currentTime = 0;
audio.play();
},
stop: function(audio) {
if(audio.currentTime) audio.currentTime = 0;
audio.play();
}
};