从昨天开始,我们遇到了嵌入soundcloud播放器的问题。我们使用Oembed方法,但似乎并非所有参数都可以被操作。所以我们现在得到新的视觉播放器而不是旧的变体。
您会看到xml中的html节点现在包含2倍的可视参数
<oembed>
<version type="float">1.0</version>
<type>rich</type>
<provider-name>SoundCloud</provider-name>
<provider-url>http://soundcloud.com</provider-url>
<height type="integer">400</height>
<width>100%</width>
<title>El Toque: Educacion sexual a la mexicana by Radio Netherlands</title>
<description>"Cuando nos deje de dar verguenza que un niño nos pregunte de dónde vienen los bebés, podremos decir que estamos en buen camino en materia de educación sexual", decía una participante en el Noveno Congreso Mexicano de Educación Sexual y sexología FEMESS, realizado recientemente en Aguascalientes, México. Hasta allá se hizo presente El Toque, donde nuestra colega Mara Landa conversó, entre otros, con Marcela Martínez, la presidenta de la Federación Mexicana de Educación Sexual y Sexualidad FEMESS y Erem Dira, voluntaria del comité organizador del congreso. Producción Mara Landa. Presentación Alejandro Pintamalli.</description>
<thumbnail-url>http://i1.sndcdn.com/artworks-000061844084-068ssp-t500x500.jpg?e30f094</thumbnail-url>
<html><![CDATA[<iframe width="100%" height="400" scrolling="no" frameborder="no" src="https://w.soundcloud.com/player/?visual=true&url=http%3A%2F%2Fapi.soundcloud.com%2Ftracks%2F118490723&show_artwork=true&visual=false"></iframe>]]></html>
<author-name>Radio Netherlands</author-name>
<author-url>http://soundcloud.com/radionetherlands</author-url>
</oembed>
答案 0 :(得分:5)
这是一个临时解决方法,直到SoundCloud为oEmbed添加一个选项。如果它们没有使新的视觉播放器成为默认播放器,那将是更好的选择,因为它现在打破了那里的所有oEmbed实例。希望他们更新API,以便正式支持它。
无论如何,这是临时解决方法。我们基本上只是在将iframe代码插入DOM之前从iframe代码中剥离出视觉播放器选项。此代码将进入您的oEmbed回调。
if (oEmbed) $('#player').html(oEmbed.html.replace('visual=true&',''));
答案 1 :(得分:0)
我终于找到了一个可靠的工作,使用一些jquery来做到这一点。重要的是要注意我必须通过用''替换visual = true来完全删除视觉设置,而不是按照建议将其设置为false。这只会针对有关soundcloud的iframe进行调用。
$(document).ready(function(){
$("iframe").each(function() {
var src = $(this).attr('src');
if(src.indexOf('https://w.soundcloud.com/player/?') != -1 && src.indexOf('visual=true') != -1) {
$(this).attr('src', src.replace('visual=true', ' '));
}
});
});
编辑:使用上面的代码,你最终可以在你的oembed电话中使用show_artwork和visual params!
答案 2 :(得分:-1)
有一种方法可以修改。有人在Twitter上问过SoundCloud,自那以后它被多次引用。
将visual=true
更改为visual=false
,将show_artwork=true
更改为show_artwork=false
。那应该照顾它!
的Src: https://twitter.com/16kbit/status/430477602286239744
希望这有帮助。