そのため、現在、埋め込みタグまたは iframe タグに既に埋め込まれている soundcloud ファイルから URL を取得し、それらの URL を別のページで使用して、fancybox に表示できます。ユーザーが やなどの典型的な共有 URL を提供した場合、適切な URL を取得したり、fancybox に表示したりする方法はありますhttp://soundcloud.com/song-b/song-please
かhttp://snd.sc/yp6VMo
? API ドキュメントを調べてみましたが、探しているものを実際に見つけることができませんでした。
4 に答える
彼は、トラックのAPI URLを取得するのではなく、htmlを取得してSoundcloudウィジェットを作成しようとしています。oEmbedメソッドは、「ユーザー、グループ、セット、またはプレイリストを指す任意のSoundCloud URLのウィジェット埋め込みコードを提供します」。Soundcloudsの変更によってアプリが破損しないようにすることをお勧めします(独自のFlashオブジェクトまたはiframeを作成するのではありません)。 )。PHPWebリクエストで呼び出すことができます
http://soundcloud.com/oembed?format=js&url=[escaped_url]&iframe=true
またはJSON-P呼び出しを使用する(便宜上jQueryを使用)
$.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'])
}
)
iframe = trueを追加しているので、新しいHTML5プレーヤーを取得し、省略して古いFlashオブジェクトを取得します。また、使用している.scの短いURLでも機能します。
ここで何を求めているのか正確にはわかりませんが、「解決」API エンドポイントが必要なようです。http://developers.soundcloud.com/docs/api/resolve
例:
$ 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
これにより、すべてのトラック情報が得られ、何をするにも十分なはずです。また、 HTML5 ウィジェットも存在することを忘れないでください。
私はこれを試していませんが、ここからコードを変更しました:
<object height="81" width="100%">
<param name="movie" value="http://player.soundcloud.com/player.swf?url=<?php echo $url; ?>&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; ?>&g=bb" type="application/x-shockwave-flash" width="100%"></embed>
</object>
<a href="<?php echo $url; ?>"><?php echo $url; ?></a>