只需单击一下事件即可播放多个音频文件

时间:2016-08-03 23:03:35

标签: javascript jquery audio

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不是函数错误。

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

2 个答案:

答案 0 :(得分:0)

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();
});

答案 1 :(得分:0)

或者你可以......

    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();
        }
    };