jquery - 多功能jQuery音频

标签 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();

最佳答案

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

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

});

关于jquery - 多功能jQuery音频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32636740/

相关文章:

javascript - 将 x 偏移到图像

jquery - 如何打印或迭代附加到元素的每个事件监听器?

c++ - C++中删除数组中的对象

python - 在 __init__ 中获取有序字典类属性

ios - 用AVAudioPlayer改变音高的简单方法吗?

javascript - Flask 静态进度屏幕

Javascript - 异步函数完成后如何等待执行下一行?

python - 在Python中伪造一个对象

java - 在 Android 上混合两个文件音频 wav 使用短数组

audio - OpenAL 监听器打破衰减