多功能的jQuery音频

时间:2015-09-17 17:46:06

标签: jquery object audio

使用jQuery我将在应用程序中合并音频。我试图通过创建一个名为Audio_types的对象来实现这一目标,该对象具有一个名为soundbits的方法。我一直在使用这篇文章Play an audio file using jQuery when a button is clicked来帮助我完成这项任务。

我的音频文件没有播放。我有几次审查我的代码后,但我无法确定我做错了什么。我创建了一个jsfiddle:http://jsfiddle.net/gD4Dr/1433/

这是一瞥代码。

var Audio_types = {
              "mp3": "audio/mpeg",
                  "mp4": "audio/mp4",
                  "ogg": "audio/ogg",
                  "wav": "audio/wav",

              soundbits: function (sound) {
                  var audio_element = document.createElement('audio');
                  if (audio_element.canPlayType) {
                      for (var i = 0; i < arguments.length; i++) {
                          var source_element = document.createElement('source');
                          source_element.setAttribute('src', arguments[i]);
                      }
                  }

                  if (arguments[i].match(/\.(\w+)$/i)) {
                      source_element.setAttribute('type', Audio_types[RegExp.$1]);
                      audio_element.appendChild(source_element);
                  }
                  audio_element.load();
                  audio_element.playclip = function () {
                      audio_element.currentTime = 0;
                      audio_element.play();
                  }

                  return audio_element;

              }
          }

          var buzz = Audio_types.soundbits( 'http://www.uscis.gov/files/nativedocuments/Track%2093.mp3');

          buzz.playclip();

1 个答案:

答案 0 :(得分:0)

此解决方案有效,但如果有人有更好的解决方案,请发布。

$(document).ready(function(){

  var Audiotypes = {
          "mp3": "audio/mpeg",
          "mp4": "audio/mp4",
          "ogg": "audio/ogg",
          "wav": "audio/wav",

      soundbits: function (sound) {
          var audio_element = document.createElement('audio')
          if (audio_element.canPlayType) {
              for (var i = 0; i < arguments.length; i++) {
                  var source_element = document.createElement('source')
                  source_element.setAttribute('src', arguments[i])
                  if (arguments[i].match(/\.(\w+)$/i)) source_element.setAttribute('type', Audiotypes[RegExp.$1])
                  audio_element.appendChild(source_element)
                  audio_element.load()
                  audio_element.currentTime = 0
                  audio_element.play()

              }
          }
      }
  }
  var buzz = Audiotypes.soundbits('http://www.uscis.gov/files/nativedocuments/Track%2093.mp3');

 buzz.play();

});