Перечислите треки из Soundcloud и воспроизведите их с помощью Soundmanager 2 в блоге Wordpress.

во-первых, это не крик о идеально закодированном решении, но было бы прекрасно, если бы кто-нибудь мог хотя бы дать мне несколько советов о том, как решить эту проблему, а именно: у меня есть этот собственный сайт Wordpress для звукозаписывающей компании. На этом сайте, конечно же, есть раздел, показывающий релизы каждого трека их исполнителя.

Клиенту необходимо загрузить все свои треки в Soundcloud. В бэкенде WP они могут ввести название альбома, загрузить обложку и добавить столько треков, сколько захотят, используя MagicFields для Wordpress. После добавления информации об альбоме и названий треков они могут ввести URL-адрес конкретного трека, размещенного на Soundcloud. Затем WP перечисляет все эти треки следующим образом:

(Кажется, я не могу загружать изображения, поэтому вот ссылка) http://postimage.org/image/22ob8ymys/

С левой стороны вы можете увидеть 360-градусную визуализацию Soundmanager2. Прямо сейчас MP3 загружаются на сайт лейбла (который мне нужно изменить), и ссылка каждого элемента списка выглядит примерно так:

<ol>
  <a href="#" onclick="if (threeSixtyPlayer.lastSound) { threeSixtyPlayer.lastSound.stop(); } document.getElementById('mp3').href = 'track1.mp3'; threeSixtyPlayer.handleClick({target: document.getElementById('mp3')});"><li>Track 1</li></a>
  ...
</ol>

Как видите, ссылка ведет к определенным файлам, заканчивающимся расширением .mp3, чтобы его можно было воспроизводить через SM2. Но, как вы, возможно, знаете, вы не можете легко получить доступ к MP3 на Soundcloud. Передача URL-адреса типа «www.soundcloud.com/artist/track1», похоже, не работает.

Я провел некоторое исследование API Soundcloud, но знаете что, это слишком сложно для меня, чтобы понять (вот почему я здесь). Документация на http://soundcloud-sm2.heroku.com/docs/application.html подошел довольно близко к тому, что я искал, но, к сожалению, я не могу его использовать, потому что треки должны быть включены на сайт не через JS, а через PHP.

Я надеюсь, что кто-то из вас может дать мне несколько советов о том, как решить эту конкретную проблему. Спасибо, что дочитали до этого места ;)


person Major    schedule 18.09.2011    source источник


Ответы (1)


Вам нужно получить URI потока с помощью Soundcloud API. Вы можете получить URI потока, выполнив запрос, например:

https://api.soundcloud.com/tracks/5677638.json

где 5677638 — идентификатор трека, информацию о котором вы хотите получить.

Но вам нужен ключ API, который вы можете запросить бесплатно по адресу: Soundcloud Developers.

Итак, после этого вы можете сделать запрос, например:

https://api.soundcloud.com/tracks/5677638.json?consumer_key={your api key}

Этот запрос даст вам строку в кодировке json, содержащую всю информацию о треке, например:

{
  "id": 5677638,
  "created_at": "2010/09/29 19:46:01 +0000",
  "user_id": 378405,
  "duration": 183945,
  "commentable": true,
  "state": "finished",
  "sharing": "public",
  "tag_list": "electro electrohouse remix green velvet remixcontest remixcompetition remixcomp foem uptempo",
  "permalink": "green-velvet-feat-santiago-bushido-turn-it-up-sander-van-halem-remix",
  "description": "Now let's turn it up up up up! :D Remix comp at http://foem.info/index.php?option=com_content&task=view&id=383&Itemid=97 . Some feedback would be appreciated. ",
  "streamable": true,
  "downloadable": true,
  "genre": "",
  "release": "",
  "purchase_url": null,
  "label_id": null,
  "label_name": "",
  "isrc": "",
  "video_url": null,
  "track_type": "remix",
  "key_signature": "",
  "bpm": 128,
  "title": "Green Velvet feat. Santiago and Bushido - Turn It Up (Sander van Halem Remix)",
  "release_year": null,
  "release_month": null,
  "release_day": null,
  "original_format": "mp3",
  "license": "all-rights-reserved",
  "uri": "https://api.soundcloud.com/tracks/5677638",
  "permalink_url": "http://soundcloud.com/sander-van-halem/green-velvet-feat-santiago-bushido-turn-it-up-sander-van-halem-remix",
  "artwork_url": "http://i1.sndcdn.com/artworks-000002478404-sy6zd5-large.jpg?6cbf23e",
  "waveform_url": "http://w1.sndcdn.com/1Iydbj7KnvOi_m.png",
  "user":  {
    "id": 378405,
    "permalink": "sander-van-halem",
    "username": "Sander van Halem",
    "uri": "https://api.soundcloud.com/users/378405",
    "permalink_url": "http://soundcloud.com/sander-van-halem",
    "avatar_url": "http://i1.sndcdn.com/avatars-000000760311-hwm8iz-large.jpg?6cbf23e"
  },
  "stream_url": "https://api.soundcloud.com/tracks/5677638/stream",
  "download_url": "https://api.soundcloud.com/tracks/5677638/download",
  "playback_count": 1386,
  "download_count": 67,
  "favoritings_count": 17,
  "comment_count": 34,
  "attachments_uri": "https://api.soundcloud.com/tracks/5677638/attachments"
}

Как вы можете видеть, есть элемент stream_url, который содержит URL-адрес, который вы можете использовать для «встраивания» трека с помощью SoundManager, как если бы вы делали это с локальным mp3.

person PeeHaa    schedule 21.02.2012
comment
Спасибо. Давно я не задавал этот вопрос, поэтому уже разобрался. Но вы правы, это способ заставить SoundManager воспроизводить URL-адреса Soundcloud. - person Major; 06.03.2012
comment
Я пытался загрузить такой трек, и он просто перенаправляет меня прямо к файлу, а не воспроизводит его в звуковом менеджере. - person mrtunes; 09.08.2012