2012-04-06 103 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>