我有一个播放音频文件的Flash播放器(使用JWPlayer)。文件播放正常。
如何为最终用户提供嵌入代码进行复制,以便他们可以直接发布播放器并在自己的网站上播放音频文件?我应该在某处使用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&show_comments=true&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&show_comments=true&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>
和<iframe>
有什么好处?
最后,在主站点上。任何时候最终用户访问音频页面。网络应用会增加views_count
。如果我使用<object>
或<iframe>
。我还能以某种方式跟踪观看次数吗?
答案 0 :(得分:1)
iframe vs object
YouTube使用<iframe>
(即“好处”)的主要原因是它允许他们更改视频的实际显示方式 - 没有嵌入视频的网站必须更改其{{1元素。即:
YouTube可以根据浏览器提供不同的内容 - 例如,如果浏览器未安装FlashPlayer,则可以在<object>
中输出HTML 5 <video>
元素。将来,您可能希望执行相同的操作(使用<iframe>
元素),因此<audio>
可能是长期灵活性的不错选择。
YouTube更容易在出现错误等情况下更改内容的输出方式。换句话说,如果出于某种原因(例如,为了让FlashPlayer 12表现出来),他们需要添加或更改{{ 1}}在HTML或其他内容中,他们可以做到这一点,而不是每个嵌入他们视频的人都必须自己更改。
代码
你可能会使用Ruby来输出实际的代码,虽然你也可以使用Javascript - 它需要以某种方式生成,以便反映应该播放的确切音频。至于将它放在<iframe>
标签中,这不是技术上的必需 - 只是为了更好的用户体验 - 只是因为它更容易分辨代码的开始和结束位置。
使用哪些标签只是哲学问题。有人会说“使用<param>
元素(表示它的代码)并将其设置为显示为块元素”;其他人会说“只是我们一个<pre>
因素,因为它已经是一个块元素”;有些人会说“将两者结合起来:<code>
”。
<强>跟踪强>
你可以追踪。对音频的请求将始终发送到您的服务器,因此在任何一种情况下都可以使用跟踪。 <pre>
的情况更容易以您已经执行过的方式进行跟踪 - 因为该iframe的<pre><code>...</code></pre>
只是指向更简单版本音频页面的链接(仅限显示实际播放器),您可以用与音频页面完全相同的方式增加<iframe>
。
关于src
优势
为什么SoundCloud只使用views_count
?只是猜测......
要么他们还没有完成它,要么他们已经决定(在某些方面非常正确)一个完全可预测的,有效的<object>
元素有点未来,并不值得它爱好。
或者他们对某些开发人员所拥有的<object>
元素有哲学上的厌恶(我在某些方面包括了 - 如果绝对没有其他选择有意义的话我只使用它。)
用户(即嵌入声音的用户)也可能打算在<audio>
会导致麻烦的地方使用它,不直接支持(例如某些CMS的)等等。
此外,虽然我怀疑这是他们的原因,但这意味着他们的服务器还会受到更多打击 - 让用户嵌入<iframe>
将直接检索Flash内容。如果他们使用<iframe>
,SoundCloud将受到每次嵌入的额外请求 - 一个用于HTML,一个用于音频文件(对于FlashPlayer,一个用于swf文件)。