一键事件吼js播放多个音频文件

Posted

技术标签:

【中文标题】一键事件吼js播放多个音频文件【英文标题】:Play multiple audio files with one click event howler js 【发布时间】:2016-08-03 23:03:35 【问题描述】:

Wordpress 网站。脚本排队等。我能够在没有数组的情况下播放单个音频文件。

虽然用了这个...

(function( $ ) 
'use strict';

jQuery(window).load(function() 
    var sound_files = 
            sound1 : new Howl(
                src: ['/synthv2.mp3'],
                loop: true
            ),
            sound2 : new Howl(
                src: ['/synthv2.mp3'],
                loop: true
            ),
            sound3 : new Howl(
                src: ['/synthv2.mp3'],
                loop: true
            )
        ;
    var play_button = $('#play-button'),
        pause_button = $('#pause-button'),
        shift_preset = $('#preset-changer'),

    play_button.click(function() 
        sound_files.play();
    );
);

)(jQuery);

我一直得到 sound_files.play is not a function 错误。

如何通过单击按钮同时触发 sound1、sound2 和 sound3?

【问题讨论】:

那是因为你还没有在sound_files 上定义一个名为play 的函数。您需要致电sound_files.sound1.play(); sound_files.sound2.play(); 等或iterate over the object 并以这种方式播放。 感谢 mike...利用您的评论以及您提供的链接和来自 FrankerZ 的代码。 你也可以添加完整的解决方案 请参阅下面的批准答案。这不是 wordpress 修复的复制和粘贴类型,而是通过音频声明循环然后 js 分配给前端控件。 【参考方案1】:

sound_files 是一个对象,所以不能简单地对它们调用.play()

你需要循环播放它们:

for (var prop in sound_files) 
    // skip loop if the property is from prototype
    if(!sound_files.hasOwnProperty(prop)) continue;

    sound_files[prop].play();
);

【讨论】:

搞定了...仍在学习,但很快就能轻松掌握概念【参考方案2】:

或者你可以...

    var sound_files = 
        sound1 : new Howl(
            src: ['/synthv2.mp3'],
            loop: true
        ),
        sound2 : new Howl(
            src: ['/synthv2.mp3'],
            loop: true
        ),
        sound3 : new Howl(
            src: ['/synthv2.mp3'],
            loop: true
        ),
        play: function()
            this.sound1.play();
            this.sound2.play();
            this.sound3.play();
        
    ;

【讨论】:

以上是关于一键事件吼js播放多个音频文件的主要内容,如果未能解决你的问题,请参考以下文章

discord.js 不播放音频文件

如何在同一页面中播放多个音频文件?

按顺序播放多个音频文件(Javascript)

在 iOS5 中自动播放 HTML5 音频/视频

使用 Audio Units 播放多个重叠的短音频文件

将 JS 音量控件附加到多个 Audiojs 音频播放器