ОсновноеRadiotalkПользовательское
Общие вопросы по интернет радио вещанию
6   •   Посмотреть все темы

Sam и обложки альбомов.

 

235
Gotor @Gotor
Возник собственно вопрос - а как заставить сэма цеплять обложки альбомов? У меня вся музыкальная база подгружалась без обложек, только мп3 и в результате ни одной картинки он не нашел. Нужно, чтобы он таки их как-то внес в базу. Ну или может есть у кого php или какой другой скрипт, чтобы картинка находилась и вставлялась на сайт?)

313
Krueger @Krueger
Можешь попробовать разобраться ********** а то сохранил себе и все никак времени небыло поковырять его) Может выводить обложку, текст песни, инфо о исполнителе, альбоме и тд и тп.. По моему надо чтоб учетка на last.fm была..

313
Krueger @Krueger
Если же сэмом выводить, то нужно будет сначала вложить обложки в mp3 файлы (я к примеру для этой использую Advanced Tag Editor, входит в AIMP3), затем очистить бд и заново добавить все файлы. Если используешь сэм 4.9.2, то можно через окно song info вложить абложку, сэм автоматом ищет обложку на amazon.. Правда нужно будет по всем трекам пробежаться, очень долго и неудобно..

349
Юрий @Всё-просто
Krueger пишет:

Можешь попробовать разобраться ********** а то сохранил себе и все никак времени небыло поковырять его) Может выводить обложку, текст песни, инфо о исполнителе, альбоме и тд и тп.. По моему надо чтоб учетка на last.fm была..


define(LAST_FM_API, ''); //your last.fm API key, get from **********

в config.php

235
Gotor @Gotor
пробовал, скрипт подключивает, ну и таки он выводит все в неком странном текстовом виде или руки кривые у меня)

349
Юрий @Всё-просто
у меня ваще ничего не "подключивало" =)

6245
Тарас @tarasian666
Пользуюсь вот этим

<?PHP
function objectsIntoArray($arrObjData, $arrSkipIndices = array())
{
$arrData = array();

// if input is object, convert into array
if (is_object($arrObjData)) {
$arrObjData = get_object_vars($arrObjData);
}

if (is_array($arrObjData)) {
foreach ($arrObjData as $index => $value) {
if (is_object($value) || is_array($value)) {
$value = objectsIntoArray($value, $arrSkipIndices); // recursive call
}
if (in_array($index, $arrSkipIndices)) {
continue;
}
$arrData[$index] = $value;
}
}
return $arrData;
}
error_reporting(0);
$Artist = urlencode("Negura Bunget");
$Album = urlencode("Om");
$xmlUrl = "http://ws.audioscrobbler.com/2.0/?method=album.getinfo&artist=$Artist&album=$Album&api_key=b25b959554ed76058ac220b7b2e0a026";
$xmlStr = file_get_contents($xmlUrl);
$xmlObj = simplexml_load_string($xmlStr);
$arrXml = objectsIntoArray($xmlObj);
if($arrXml['@attributes']['status'] =='ok'){

echo "<img src=\"".$arrXml['album']['image'][2]."\" >";}

?>

313
Krueger @Krueger
Класс, спасибо что поделился. Простой скрипт и ничего лишнего)

235
Gotor @Gotor
сегодня опробую))

6245
Тарас @tarasian666
в ['image'][2]

[2] это размер картинки,

1 будет меньше, 3 соответсвенно больше

235
Gotor @Gotor
небольшой вопрос по скрипту. чем ему можно подпихивать альбом и исполнителя? в нем же статично вбито. в php не шарю, совсем.

235
Gotor @Gotor

<?PHP
function objectsIntoArray($arrObjData, $arrSkipIndices = array())
{
$arrData = array();

// if input is object, convert into array
if (is_object($arrObjData)) {
$arrObjData = get_object_vars($arrObjData);
}

if (is_array($arrObjData)) {
foreach ($arrObjData as $index => $value) {
if (is_object($value) || is_array($value)) {
$value = objectsIntoArray($value, $arrSkipIndices); // recursive call
}
if (in_array($index, $arrSkipIndices)) {
continue;
}
$arrData[$index] = $value;
}
}
return $arrData;
}
error_reporting(0);

$artistfromfile = file_get_contents ( 'http://api.nnradio.tk/artist.txt' );
$albumfromfile = file_get_contents ( 'http://api.nnradio.tk/album.txt' );

$Artist = urlencode($artistfromfile);
$Album = urlencode($albumfromfile);
$xmlUrl = "http://ws.audioscrobbler.com/2.0/?method=album.getinfo&artist=$Artist&album=$Album&api_key=b25b959554ed76058ac220b7b2e0a026";
$xmlStr = file_get_contents($xmlUrl);
$xmlObj = simplexml_load_string($xmlStr);
$arrXml = objectsIntoArray($xmlObj);
if($arrXml['@attributes']['status'] =='ok'){

echo "<img src=\"".$arrXml['album']['image'][2]."\" >";}

?>



сделал вот так, album.txt и artist.txt генерируются Sam Broadcaster при смене песни. Содержимое файла из которого сэм генерирует album.txt
$song.album$

и собственно содержимое для файла с именем исполнителя:
$song.artist$

235
Gotor @Gotor
Пример работы тут **********

6245
Тарас @tarasian666
можно проще

файл для сэма содержит

<?php
$Artist = "$song.artist$";
$Album = "$song.artist$";
?>


и в самом скрипте просто инклюдинг даного файла

Отредактировано tarasian666 - 14.03.2012
235
Gotor @Gotor
тут фишка в другом - сэм считает переменной все, что между знаками $. По-этому если ему такой файлец пихнуть, он там нагенерирует))

6245
Тарас @tarasian666
нет, проверено лично
он заменяет только свои переменные такие как $song.artist$ и тд

вот нашел когда-то использовавшийся мною файл


<!--include("_config.html")-->
<?PHP

$songtitle = "$song.combine$";

$songtime = "$song.mmss$";

$queue = "<!--LOOP(queue,2)-->$queue.artist$&nbsp;&nbsp;<!--LOOP_END-->";

$listeners = "$Viewers$";

$pic = "$picture_dir$$song.picture$";

?>