即使在点击处理程序上,Html5 音频也不会加载/播放

Posted

技术标签:

【中文标题】即使在点击处理程序上,Html5 音频也不会加载/播放【英文标题】:Html5 audio does not load/play even on click handlers 【发布时间】:2013-01-23 13:43:17 【问题描述】:

我正在使用以下代码在 iPad Safari 上加载声音。

    var EI=sound:;
    EI.sound.load = function()
        var preferFlash = true;
        if (Ext.os.is('ios') && Ext.browser.is('WebKit'))
            preferFlash = false;
        // Load sound modules
        soundManager.setup(
            debugMode: true,
            preferFlash: false,
            onready: function()
                var s = EI.sound; 
                s.audio = soundManager.createSound(
                    id: 'audio',
                    url: 'sound/sprite.mp3'
                );
                var opt = s.opt.online, f = opt.start+opt.duration, t=f+1500;
                if (s.enabled)  s.audio.play(from:opt.start, to:opt.start+opt.duration);
            
        );
    

opt 定义为

EI.sound.opt = 
    "msg":start: 53, duration: 701,
    "offline":start: 1904, duration: 487,
    "online":start: 3548, duration: 2476,

一个按钮click 事件处理程序看起来像这样,

handler: function(btn)
    EI.sound.load();

问题是单击按钮时声音不播放。我知道 Mobile Safari 对 html5 音频有限制。这些是我为克服它而采取的步骤。

    只能加载一个文件。所以我制作了一个音频精灵并只播放其中的一部分。 声音只能在单击或触摸启动甚至处理程序时加载。所以我正在加载点击事件处理程序。

但还是没有声音。当我按下那个按钮时,我希望听到声音。它是一个启动图像类型按钮。它是用户必须按下才能使用应用程序的第一个按钮。

如何让音频播放成功?

这里有一些资源

    http://www.ibm.com/developerworks/library/wa-ioshtml5/index.html SoundManager2 on iPhone - Sound not playing on jQuery Load

【问题讨论】:

【参考方案1】:

您正在使用“EI.sound.load()”,而您必须在声音管理器设置中使用“EI.sound.play()”或 autplay: true。

【讨论】:

以上是关于即使在点击处理程序上,Html5 音频也不会加载/播放的主要内容,如果未能解决你的问题,请参考以下文章

视频即使发布也不会停止播放

Html5 音频无法在 Cordova 应用程序中播放

Gridsome 项目托管在 netlify 上。点击时,即使 URL 更新,页面也不会加载

HTML5 音频加载和播放无法在 iPad 上运行

音频标签的 Html5 延迟“onplay”事件处理程序?

iOS Web 应用上的 HTML5 音频