2012-03-11 29 views
8

Así que ahora puedo tomar la URL de los archivos Soundcloud ya integrados en las etiquetas incrustadas o iframe y usar esas URL en otra página y mostrarla en fancybox. ¿Hay alguna manera de obtener la url correcta o mostrar en fancybox si un usuario ofrece una url compartida típica como http://soundcloud.com/song-b/song-please o http://snd.sc/yp6VMo? Traté de ver la documentación de la API, pero no pude encontrar lo que estaba buscando.¿Cómo obtener la URL de SoundCloud adecuada para insertar desde una URL estándar?

Respuesta

17

Está tratando de obtener html para crear un widget Soundcloud, no obtener la URL de la API para una pista. El oEmbed method "servirá el código incrustado del widget para cualquier URL SoundCloud que apunte a un usuario, grupo, grupo o lista de reproducción" y se recomienda para asegurarse de que los cambios Soundclouds no rompan su aplicación (en lugar de crear su propio objeto Flash o iframe) . Se le puede llamar con una petición web PHP a

http://soundcloud.com/oembed?format=js&url=[escaped_url]&iframe=true 

O con una llamada JSON-P (usando jQuery para mayor comodidad)

$.getJSON('http://soundcloud.com/oembed?callback=?', 
    {format: 'js', url: 'http://snd.sc/yp6VMo', iframe: true}, 
    function(data) { 
     // Stick the html content returned in the object into the page 
     $('#your_player_div').html(data['html']) 
    } 
) 

estoy añadiendo iframe = true para que pueda obtener el nuevo HTML5 jugador, omita obtener el objeto Flash anterior. También funciona con las URL cortas .sc que estás usando.

+0

Para ajustar el tamaño de ir a la página de http://developers.soundcloud.com/docs/oembed oEmbed y utilizar las propiedades maxwidth y maxheight. –

+0

"se recomienda para asegurarse de que los cambios de Soundclouds no rompan su aplicación", lol, sus cambios sí lo rompieron. –

0

No he probado esto, modificado código de here:

<object height="81" width="100%"> 
    <param name="movie" value="http://player.soundcloud.com/player.swf?url=<?php echo $url; ?>&amp;g=bb"></param> 
    <param name="allowscriptaccess" value="always"></param> 
    <embed allowscriptaccess="always" height="81" src="http://player.soundcloud.com/player.swf?url=<?php echo $url; ?>&amp;g=bb" type="application/x-shockwave-flash" width="100%"></embed> 
</object> 
<a href="<?php echo $url; ?>"><?php echo $url; ?></a> 
6

No estoy exactamente seguro de lo que estás pidiendo aquí, pero parece que usted puede ser que necesite el "resolver" punto final de la API. http://developers.soundcloud.com/docs/api/resolve

Ejemplo:

$ curl -v 'http://api.soundcloud.com/resolve.json?url=http://soundcloud.com/matas/hobnotropic&client_id=YOUR_CLIENT_ID' 

HTTP/1.1 302 Moved Temporarily 
Location: http://api.soundcloud.com/tracks/49931.json 

Esto le dará toda la información de la pista y eso debería ser suficiente para todo lo que tiene que hacer. Además, no olvide que también está el HTML5 widget.

6

puede probar esta canción para url no para la identificación de la canción url

<iframe width="100%" height="166" scrolling="no" frameborder="no"src="http://w.soundcloud.com/player/?url=http://api.soundcloud.com/elissafranceschi/war&auto_play=false&color=915f33&theme_color=00FF00"></iframe> 
+1

+1 ¡Muchas gracias! Eso significa que no necesita la ID de la pista. ¡Muy agradable! – erik

+2

Parece que Soundcloud se enganchó y parece que ya no puedes hacerlo así. Laaaame. – SlickRemix

Cuestiones relacionadas