2012-04-06 99 views
12

我一直在寻找答案的年龄,我似乎无法找到我所需要的。如何在网站中嵌入音频?

我从来没有编码任何与音频连接的东西。

我想要做的是在一个网站内嵌入音乐文件(在网站上有一些小小的MP3播放器)。我希望观众能够通过使用定制控制器来播放,停止歌曲等。

如何编码那些自定义的按钮,以便它们都能正常工作?

我只需要编码HTML和CSS(PHP,Java等留给别人)。你会建议我怎么做才能在模板上创建这个功能?

谢谢=)

P.S.

我不得不使用XHTML 1.0过渡

回答

24

你可以使用很多东西。

  • 如果你是一个标准的迷,你可以使用HTML5 <audio>标签:

Here is the official W3C specification for the audio tag

用法:

<audio controls> 
<source src="http://media.w3.org/2010/07/bunny/04-Death_Becomes_Fur.mp4" 
     type='audio/mp4'> 
<!-- The next two lines are only executed if the browser doesn't support MP4 files --> 
<source src="http://media.w3.org/2010/07/bunny/04-Death_Becomes_Fur.oga" 
     type='audio/ogg; codecs=vorbis'> 
<!-- The next line will only be executed if the browser doesn't support the <audio> tag--> 
<p>Your user agent does not support the HTML5 Audio element.</p> 
</audio> 

jsFiddle here.

注:我不知道这是最好的那些,因为我从来没有使用一个(还)。


UPDATE:作为另一个答案的评论中提到,您使用XHTML 1.0过渡。你可能会得到<audio>与一些破解工作。


更新2:我只记得另一种方式做到播放音频。这工作在XHTML!这完全符合标准。

您可以使用此的JavaScript

var aud = document.createElement("iframe"); 
aud.setAttribute('src', "http://yoursite.com/youraudio.mp4"); // replace with actual file path 
aud.setAttribute('width', '1px'); 
aud.setAttribute('height', '1px'); 
aud.setAttribute('scrolling', 'no'); 
aud.style.border = "0px"; 
document.body.appendChild(aud); 

This is my answer to another question.


更新3:要自定义的控件,您可以使用类似this

+0

你知道我如何定制控制器按钮吗? P.S.我认为'MP3播放器'的名称比'网站音乐播放器'更无聊:-P – Vetaxili 2012-04-06 10:20:59

+1

@Vetaxili这个问题可能会帮助你:http://stackoverflow.com/questions/7638754/html-5-audio-tag-custom-控制 – 2012-04-06 10:27:18

+0

我相信你的答案是我正在寻找并且能够工作的答案。我现在必须出去,但我绝对会让你知道它是否解决了我的问题。 :-) – Vetaxili 2012-04-06 10:30:56

0

如果您正在使用HTML 5,有<audio>元素。

MDN

audio元件用于嵌入在HTML或XHTML文档声音内容。音频元素是作为HTML5的一部分添加的。


更新:

为了在HTML版本的浏览器5(包括XHTML)之前播放音频,你需要使用的许多闪存音频播放器之一。

+0

对不起,我忘了提。我必须使用XHTML 1。0过渡。 你知道我将不得不编码控制器吗?所以可以使用自定义的而不是默认的? – Vetaxili 2012-04-06 09:57:05

+0

@Vetaxili - 小细节,呃?请_edit_你的问题,并添加这个细节。 – Oded 2012-04-06 09:57:53

4

肯定HTML5元素是要走的路。有它至少基本支持,在最新版本的几乎所有的浏览器:

http://caniuse.com/#feat=audio

它允许指定当元素不被支持的浏览器做什么。例如,你可以通过做链接添加到文件:

<audio controls src="intro.mp3"> 
    <a href="intro.mp3">Introduction to HTML5 (10:12) - MP3 - 3.2MB</a> 
</audio> 

你可以找到这样的例子,并约在以下链接音频元素的更多信息:

http://hacks.mozilla.org/2012/04/enhanceyourhtml5appwithaudio/

最后,良好的消息是,mozilla的4月的开发者德比是关于这个元素,所以这可能会提供大量的例子来说明如何充分利用这个元素:

http://hacks.mozilla.org/2012/04/april-dev-derby-show-us-what-you-can-do-with-html5-audio/

+1

如果你想自定义播放器的控件,你可以看看如何做到这一点的解释(http://terrillthompson.com/blog/32) – txominpelu 2012-04-06 10:17:20

1

这里是使可访问的音频播放器,有效的XHTML和非侵入性的JavaScript感谢W3C Web Audio API的解决方案:

怎么办:

  1. 如果浏览器能够读取,然后我们显示控件
  2. 如果浏览器无法读取,我们只是呈现一个链接到文件

第一人的L,我们检查,如果浏览器实现网络音频API:

if (typeof Audio === 'undefined') { 
    // abort 
} 

然后我们实例化一个Audio对象:

var player = new Audio('mysong.ogg'); 

然后我们就可以检查浏览器是否能这种类型的文件进行解码:

if(!player.canPlayType('audio/ogg')) { 
    // abort 
} 

或者即使它可以播放编解码器:

if(!player.canPlayType('audio/ogg; codecs="vorbis"')) { 
    // abort 
} 

然后我们可以使用player.play()player.pause();

我做了一个小的JQuery插件,我打电话给nanodio来测试这个。

您可以检查它是如何工作的my demo page(抱歉,但文字是法语:P)

只需点击一个链接播放,然后再次单击暂停。如果浏览器可以本地读取它,它会。如果不能,它应该下载文件。

这只是一个小例子,但可以提高它使用您的网页中的任何元素作为控制按钮或产生于用JavaScript动态的...你想要的。

0

我发现无论是IE浏览器还是Chrome浏览器在大多数这些窒息,或他们需要外部库。我只是想播放MP3,而我发现页面http://www.w3schools.com/html/html_sounds.asp非常有帮助。

<audio controls> 
    <source src="horse.mp3" type="audio/mpeg"> 
    <embed height="50" width="100" src="horse.mp3"> 
</audio> 

在我尝试过的浏览器中为我工作过,但此时我还没有一些旧的。

-1
<html> 

<head> 
    <H1> 
     Automatically play music files on your website when a page loads 
    </H1> 
</head> 

<body> 
    <embed src="YourMusic.mp3" autostart="true" loop="true" width="2" height="0"> 
    </embed> 
</body> 

</html>