Javascript 嵌入音频mp3而不使用Flash

Javascript 嵌入音频mp3而不使用Flash,javascript,html,audio,Javascript,Html,Audio,在html页面中嵌入音频mp3的好方法是什么,不使用flash,而是使用自定义外观? 此外,它还可以部分地在较旧的浏览器中工作您应该看看。 如果浏览器支持HTML5,它将使用HTML5,但如果必须,它将降级为使用flash。最棒的是,它有一个API,无论哪种方式都是一样的。我已经在一些项目中使用了这个工具,它是惊人的 下面是他们的描述 问题:浏览器缺乏良好、一致的本机音频支持。(HTML5的Audio()是未来,但仍在开发中。) 解决方案:通过外部接口使用HTML5 Audio()+无头Flas

在html页面中嵌入音频mp3的好方法是什么,不使用flash,而是使用自定义外观? 此外,它还可以部分地在较旧的浏览器中工作

您应该看看。 如果浏览器支持HTML5,它将使用HTML5,但如果必须,它将降级为使用flash。最棒的是,它有一个API,无论哪种方式都是一样的。我已经在一些项目中使用了这个工具,它是惊人的

下面是他们的描述

问题:浏览器缺乏良好、一致的本机音频支持。(HTML5的Audio()是未来,但仍在开发中。)

解决方案:通过外部接口使用HTML5 Audio()+无头Flash的Javascript API,几乎在任何地方都可以使用。如果支持HTML5,但不支持“非免费”MP3/MP4格式,则使用flash作为备用

SoundManager 2包装和扩展了Flash和HTML音频API,为Javascript提供了一个统一的声音API;无论最终是使用HTML还是Flash播放声音,API都是一样的。(闪存部分是隐藏的,对开发人员和最终用户都是透明的。)


如果您想在旧浏览器中使用它,则必须提供闪存回退。例如,你可以用它来做。jPlayer支持:

  • HTML5:mp3、m4a(AAC)、m4v(H.264)、ogv、oga、wav、webm
  • 闪存:mp3、m4a(AAC)、m4v(H.264)
请记住,Firefox没有原生MP3支持,因此如果您使用HTML5音频,您还必须为Firefox和其他一些浏览器提供Ogg Vorbis。

我刚刚遇到了这篇文章,其中介绍了几种通过Javascript播放音频的方法,而不依赖flash回退

以下是报告的要点。 移动浏览器
目前没有解决方案,除非声音是作为用户操作的直接结果播放(单击)

支持HTML5
元素的浏览器。

要求您提供三种不同格式的音频

if("Audio" in window){
  var a = new Audio();
  if(!!(a.canPlayType && a.canPlayType('audio/ogg; codecs="vorbis"').replace(/no/, '')))
    a.src = "/sounds/ping.ogg";
  else if(!!(a.canPlayType && a.canPlayType('audio/mpeg;').replace(/no/, '')))
    a.src = "/sounds/ping.mp3";
  else if(!!(a.canPlayType && a.canPlayType('audio/mp4;     codecs="mp4a.40.2"').replace(/no/, '')))
    a.src = "/sounds/ping.m4a";
  else
    a.src = "/sounds/ping.mp3";

  a.autoplay = true;
  return;
}

如果你正在处理IE我已经创建了一个JQuery声音插件,它基于上面jessegavin提到的Thomas Fuchs文章。你可以在


请使用、滥用和贡献

嗯,我必须说,这真的很好。。。我的问题是我正试图为一家大型杂志公司做这件事,我不确定我们是否被允许使用像这样的第三方工具。。。不过我还是会调查的。它是开源的,所以你至少可以从中学习一些东西。你会发现这个问题在跨浏览器环境下不容易解决!我能问一下吗:如何设置自动播放、循环、无控件等属性?似乎不起作用。我得到的只是一个警报(你有与它工作的链接吗?
<bgsound src="/sounds/ping.mp3" loop="1" autostart="autostart">
// this code uses Prototype.js
if(navigator.plugins && $A(navigator.plugins).detect(function(p){ return p.name.indexOf('QuickTime') != -1 }))
  Sound.template = new Template('<object id="sound_#{track}_#{id}" width="0" height="0" type="audio/mpeg" data="#{url}"/>');
else if(navigator.plugins && $A(navigator.plugins).detect(function(p){ return p.name.indexOf('Windows Media') != -1 }))
  Sound.template = new Template('<object id="sound_#{track}_#{id}" type="application/x-mplayer2" data="#{url}"></object>');
else if(navigator.plugins && $A(navigator.plugins).detect(function(p){ return p.name.indexOf('RealPlayer') != -1 }))
  Sound.template = new Template('<embed type="audio/x-pn-realaudio-plugin" style="height:0" id="sound_#{track}_#{id}" src="#{url}" loop="false" autostart="true" hidden="true"/>');