Страница 2 из 7
Re: Прослушивание музыки Вконтакте
Добавлено: Пт окт 17, 2014 12:12 pm
ErmolenkoM
Dark_Veter писал(а):
1. Чтобы возвращало много песен нужно поправить параметр &count в первой ссылке, это и есть количество возвращаемых аудиозаписей. Поиска по жанру к сожалению нету.
2. С плейлистами посмотрю отдельно, отпишусь по результатам, правильно ли я понимаю, что плейлист - это альбом пользователя ВК?
1. О! То что нужно. У многих песен в названии стоит жанр, так что это оно!
2. Да, это альбом пользователя.
Re: Прослушивание музыки Вконтакте
Добавлено: Пт окт 17, 2014 1:48 pm
Dark_Veter
Немного доработал код, теперь можно передавать в параметры COUNT - это количество возвращаемых треков и параметр ALBUM - название альбома пользователя. Т.е. Можно вызвать скрипт так:
Код: Выделить всё
runScript("VkMusic", array('VALUE'=>ID_ПользователяВК, 'MODE'=>3, 'ALBUM'=>НазваниеАльбома));
Тогда будет проигрываться альбом, который указан. Особо не тестировал доработанную версию, пока времени не хватает. Если у кого-то есть возможность протестировать, попробуйте пожалуйста.
Код: Выделить всё
if ($params['VALUE']) {
getURL('http://127.0.0.1/rc/?command=vlc_close', 0);
$token = '';
if (isset($params['COUNT'])) {
$trackCount = $params['COUNT'];
} else {
$trackCount = 1;
}
if ($params['MODE'] == 0) {
$uid = $params['VALUE'];
$link = 'https://api.vk.com/method/audio.get.xml?owner_id=' . urlencode($uid) . '&access_token=' . $token;
} elseif ($params['MODE'] == 1) {
$trackName = $params['VALUE'];
$link = 'https://api.vk.com/method/audio.search.xml?q=' . urlencode($trackName) . '&count=' . $trackCount . '&auto_complete=1&sort=2&access_token=' . $token;
} elseif ($params['MODE'] == 2) {
$performerName = $params['VALUE'];
$link = 'https://api.vk.com/method/audio.search.xml?q=' . urlencode($performerName) . '&count=' . $trackCount . '&auto_complete=1&performer_only=1&sort=2&access_token=' . $token;
} else {
if (isset($params['ALBUM'])) {
$uid = $params['VALUE'];
$link = 'https://api.vk.com/method/audio.getAlbums.xml?owner_id=' . urlencode($uid) . '&access_token=' . $token;
$res = getURL($link,0);
$xml = new SimpleXMLElement($res);
foreach ($xml->album as $item) {
if ($item->title == $params['ALBUM']) {
$albumId = $item->album_id;
break;
}
}
$link = 'https://api.vk.com/method/audio.get.xml?owner_id=' . urlencode($uid) . '&access_token=' . $token . '&album_id=' . $albumId;
}
}
$res = getURL($link,0);
$xml = new SimpleXMLElement($res);
$tempPlaylist = sys_get_temp_dir() .DIRECTORY_SEPARATOR. "playlist.m3u";
$fp = fopen($tempPlaylist, "w");
fwrite($fp, '#EXTM3U' . "\r\n");
foreach ($xml->audio as $item) {
fwrite($fp, '#EXTINF:' . $item->duration . ', ' . $item->artist . ' - ' . $item->title . "\r\n");
fwrite($fp, $item->url . "\r\n");
fwrite($fp, "\r\n");
}
fclose($fp);
getURL('http://127.0.0.1/rc/?command=vlc_play¶m='.$tempPlaylist, 0);
}
Так же теперь не надо исправлять путь к плейлисту, должно работать на всех ос.
Может кто поможет еще с проигрывателем разобраться, чтобы запускался выбранный в терминал?
UPD: Если в MODE передать 2, тогда поиск будет осуществляться по исполнителю, например:
Код: Выделить всё
runScript("VkMusic", array('VALUE'=>'Король и шут', 'MODE'=>2, 'COUNT'=>'10'));
Будет проигрывать 10 песен "короля и шута".
Re: Прослушивание музыки Вконтакте
Добавлено: Пт окт 17, 2014 7:57 pm
Vit
Классно. Ещё бы параметры эти передавать голосом а не жестко в вызове скрипта указывать
Re: Прослушивание музыки Вконтакте
Добавлено: Пт окт 17, 2014 8:25 pm
Dark_Veter
Vit писал(а):Классно. Ещё бы параметры эти передавать голосом а не жестко в вызове скрипта указывать
Это можно реализовать через шаблоны поведения, например, создать шаблон: включи музыку (.+) вконтакте, там код:
Код: Выделить всё
if ($matches[1] == "%username1%") {
runScript("VkMusic", array('VALUE'=>'username1_id', 'MODE'=>0));
} else {
runScript("VkMusic", array('VALUE'=>'username2_id', 'MODE'=>0));
}
Re: Прослушивание музыки Вконтакте
Добавлено: Вс окт 19, 2014 12:57 pm
LuckyFIA
чтобы запускался плеер выбранный в терминале, можно попробовать заменить
getURL('
http://127.0.0.1/rc/?command=vlc_play&p ... mpPlaylist, 0);
на
Код: Выделить всё
$play_terminal = "MAIN";
$url=BASE_URL.ROOTHTML.'popup/app_player.html?ajax=1&play_terminal='.$play_terminal.'&command=refresh&play=';
getURL($url.$tempPlaylist, 0);
Re: Прослушивание музыки Вконтакте
Добавлено: Сб ноя 01, 2014 8:26 pm
sergejey
У меня сейчас запрос поисковый через скрипт выдаёт ошибку: Captcha needed
Зашёл на страницу этого приложения (MdmMusic), но там ничего нет, кроме информации о том, что это Standalone приложение.
Попытался создать своё приложение, но что-то не разобрался где взять token.
Нужна помощь

Re: Прослушивание музыки Вконтакте
Добавлено: Сб ноя 01, 2014 9:05 pm
Dark_Veter
Такая ошибка выдается, если слишком часто идут запросы. По идее через время должно заработать. Если не получиться поменяйте токен, для этого надо перейти по ссылке:
http://oauth.vk.com/authorize?client_id ... type=token , разрешить приложению доступ и скопировать токен из адресной строки.
Re: Прослушивание музыки Вконтакте
Добавлено: Сб ноя 01, 2014 9:42 pm
sergejey
Спасибо! Через новый token заработало.
Re: Прослушивание музыки Вконтакте
Добавлено: Пн ноя 03, 2014 9:45 am
sergejey
Ещё вопрос, не сталкивался ли кто с проблемой проигрывания треков через vlc? У меня некоторые найденные треки играются только первые 3-4 секунды, а потом обрывается и играются заново. Не все, но много. Хотя по этой же ссылке в aimp всё нормально работает с первого раза.
Re: Прослушивание музыки Вконтакте
Добавлено: Пт ноя 07, 2014 9:44 am
Goerg
sergejey, бывает такое! Грешу на то что не успевает докачать файл до конца и крутит то что успел скачать. Такое же происходит на Android в офиц. приложении, только проигрывает 3-5 секунд и затыкается.