2014-01-29 27 views
4

從昨天開始,我們在嵌入soundcloud播放器時遇到問題。我們使用Oembed方法,但似乎並非所有參數都可以被操縱。所以我們現在得到新的視覺播放器,而不是舊的變體。無法更改Oembed可視參數

例如,當我們使用:http://soundcloud.com/oembed?format=xml&url=https://soundcloud.com/radionetherlands/el-toque-educacion-sexual-a-la&visual=false

你看到,在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> 

回答

5

這裏是一個臨時的解決方法,直到的SoundCloud添加了一個選項,以oEmbed。如果他們沒有讓新的視覺播放器成爲默認視頻播放器,那將是更可取的,因爲它現在已經打破了每個視頻播放器的實例。希望他們更新API,以便正式得到支持。

無論如何,這裏是暫時的解決方法。在我們將它插入到DOM之前,我們基本上只是從iframe代碼中刪除了視覺播放器選項。這段代碼將進入你的oEmbed回調。

if (oEmbed) $('#player').html(oEmbed.html.replace('visual=true&',''));

+0

嘿@Joe,你能找到更好的解決方案嗎?似乎我需要相同的東西。 – Leo

+0

已經過了一年多了,我仍然遇到這個問題......?!我在某個Soundcloud庫文件的控制檯中收到可疑錯誤。 「Uncaught IndexSizeError:無法在'CanvasRenderingContext2D'上執行'getImageData':源寬度爲0.」文件中:http://w.soundcloud.com/player/assets/layouts/visual-single-sound-848ca43e.js:30 –

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', ' ')); 
    } 
}); 
}); 

編輯:通過上面的代碼,你可以最終在你的調用中使用show_artwork和visual params!