2012-02-20 49 views
1

我有一個播放音頻文件的Flash播放器(使用JWPlayer)。該文件播放良好。如何製作音頻文件和Flash播放器可嵌入?

如何爲最終用戶提供複製的嵌入代碼,以便他們可以發佈播放器並直接在自己的網站上播放音頻文件?我應該在某處使用HTML <pre>標籤嗎?或JavaScript來生成嵌入代碼/鏈接?

例如。的SoundCloud有:

<object height="81" width="100%"> <param name="movie" value="https://player.soundcloud.com/player.swf?url=http%3A%2F%2Fapi.soundcloud.com%2Ftracks%2F31988157&amp;show_comments=true&amp;auto_play=false"></param> <param name="allowscriptaccess" value="always"></param> <embed allowscriptaccess="always" height="81" src="https://player.soundcloud.com/player.swf?url=http%3A%2F%2Fapi.soundcloud.com%2Ftracks%2F31988157&amp;show_comments=true&amp;auto_play=false" type="application/x-shockwave-flash" width="100%"></embed> </object> <span><a href="http://soundcloud.com/chris_ilett/the-fray">The Fray</a> by <a href="http://soundcloud.com/chris_ilett">chris_ilett</a></span> 

和YouTube有:

<iframe width="420" height="315" src="http://www.youtube.com/embed/FL7yD-0pqZg" frameborder="0" allowfullscreen></iframe> 

什麼是具有<object>和的好處是什麼?

最後,在主網站上。任何時候最終用戶訪問音頻頁面。該Web應用程序增加了views_count。如果我使用<object>或。我仍然能夠以某種方式跟蹤觀看次數嗎?

回答

1

的iframe VS對象

的主要原因是YouTube的使用(即「利益」),是允許他們改變視頻實際上是如何顯示 - 沒有多數民衆贊成嵌入具有視頻網站更改其<object>元素。即:

  • 的YouTube可以成爲依賴於瀏覽器不同的內容 - 也就是,如果瀏覽器沒有安裝flash播放器,它們可以輸出在代替HTML 5 <video>元素。將來,您可能也希望這樣做(使用<audio>元素),因此可能是長期靈活性的理想選擇。

  • 它更容易讓YouTube改變內容是如何在錯誤等等。換句話說情況下輸出,如果由於某種原因(使用MAK flash播放器12的行爲,例如),他們需要添加或更改一個<param> HTML或其他的東西,他們可以做到這一點,而不需要每個人都嵌入他們的視頻來自己改變它。

代碼

你可能會用Ruby輸出實際的代碼,雖然你可以使用JavaScript太 - 這將需要以反映的應該確切的音頻莫名其妙地產生被播放。至於把它放在<pre>標籤中,這不是一個技術上的必要 - 只是一個更好的用戶體驗問題 - 僅僅是因爲它更容易知道代碼的開始和結束位置。

準確使用哪個標籤只是哲學問題。有人會說「使用<code>元素(表示它的代碼)並將其設置爲一個塊元素」;其他人會說「只是我們<pre>元素,因爲它已經是一個塊元素」;有人會說「合併兩個:<pre><code>...</code></pre>」。

跟蹤

您可以跟蹤任何。對音頻的請求將始終發送到您的服務器,因此無論在哪種情況下都可以使用跟蹤。 的情況很容易跟蹤,就像你已經在做這件事一樣 - 因爲該iframe的src只是一個更簡單版本的音頻頁面的鏈接(只顯示實際播放器),你可以與音頻頁面完全相同的方式增加views_count

至於<object>優勢

爲什麼使用的SoundCloud專門<object>?只是在這裏猜...

要麼他們還沒有得到它,或者他們已經決定(在某些方面是非常正確的)一個完全可預測的,工作的元素是未來的一點,而不是值得它只是尚未。

或者他們對某些開發人員擁有的元素有一定的哲學反感(我包含在某些方面 - 只有在絕對沒有其他替代方案的情況下才會使用它)。

用戶(即一個誰嵌入音)也可能打算用它在一個地方會引起麻煩,不直接支持(例如,一些CMS的)等

而且,儘管我懷疑這是他們的原因,但這意味着他們的服務器再次受到影響 - 讓用戶嵌入<object>將直接檢索Flash內容。如果他們使用,SoundCloud將會在每次嵌入時額外發出一個請求 - 一個用於HTML,一個用於音頻文件(對於FlashPlayer,另一個用於swf文件)。

+0

感謝您的詳細解釋。在這種情況下,爲什麼SoundCloud仍然使用「」而不是「