Comments (25)
В общем, если кратко, то это проблема потока выполнения на интерфейсе. Ловится блокировка на асинхронные операции от библиотеки.
https://blog.stephencleary.com/2012/07/dont-block-on-async-code.html
Подумаю, что с этим можно сделать. Первые две операции выполняются асинхронно, а ссылка сейчас получается синхронно.
from yandex.music.api.
Я скоро выложу новую версию, где добавил асинхронность на эти методы.
from yandex.music.api.
Правильно. Это он и есть.
from yandex.music.api.
Добрый день. Таким способом не совсем корректно будет получать данные для проигрывания, потому что ссылки протухают через несколько минут. Рекомендуется кэшировать композиции.
По поводу зависания. На любом треке виснет? Нужен идентификатор, чтобы я смог протестировать.
DashboardPage - это конструктор?
from yandex.music.api.
По поводу зависания. На любом треке виснет? Нужен идентификатор, чтобы я смог протестировать.
У меня почему-то да...
DashboardPage - это конструктор?
Я использую WpfUI библиотеку,это от туда.
Добрый день. Таким способом не совсем корректно будет получать данные для проигрывания, потому что ссылки протухают через несколько минут. Рекомендуется кэшировать композиции.
А вот это я не очень понял...(
from yandex.music.api.
Ссылки я планировал получать на трек лишь в тот момент когда юзер его включает.Или все равно не вариант?
Я в данный момент просто пытаюсь тестовую площадку свою собрать,чтобы понять как дальше работать)
from yandex.music.api.
Ссылки я планировал получать на трек лишь в тот момент когда юзер его включает.Или все равно не вариант?
Если на момент передачи в какой-то плеер в браузере, то вариант. Просто в коде цикл, и на момент проигрывания треков после первого ссылки уже протухнут.
from yandex.music.api.
Если на момент передачи в какой-то плеер в браузере, то вариант. Просто в коде цикл, и на момент проигрывания треков после первого ссылки уже протухнут.
Ну вот я так и хочу,когда пользователь клацает на иконку "играть" тогда из списка треков брать его «<id альбома>:<id трека>». и по нему получать ссылку.Понимаю что будут подвисы...но имхо это выход.Но пока увы это не работает у меня.
Сижу изучаю.
from yandex.music.api.
В общем, если кратко, то это проблема потока выполнения на интерфейсе. Ловится блокировка на асинхронные операции от библиотеки. https://blog.stephencleary.com/2012/07/dont-block-on-async-code.html
Подумаю, что с этим можно сделать. Первые две операции выполняются асинхронно, а ссылка сейчас получается синхронно.
Понял,спасибо. А то либ лучше вашей пока не нашлось под мои задачи,и только вроде все пошло,и тут на тебе...
from yandex.music.api.
var play = await _client.Playlist.OfTheDayAsync(_storage);
foreach (var item in play.Result.Tracks)
{
tracks.Items.Add(item.Track.Artists[0].Name + " - " + item.Track.Title);
await Task.Run(() =>
{
Debug.WriteLine(_client.Track.GetFileLink(_storage, item.Track));
});
}
Вот такой костыль пока помог решить проблему частично.
Буду пытаться так же при клике на трек вызывать.
from yandex.music.api.
... пишу свой аналог ЯМузыки
Сижу изучаю.
Подписался на вас. Надеюсь, однажды опенсорсните свои наработки. Своя Я.Музыка это оч круто, а то вдруг Яндекс прибьет олдскульную UWP-версию своего творения
from yandex.music.api.
Выложил версию 1.3.6. Публикуется. Проверьте по возможности.
from yandex.music.api.
Выложил версию 1.3.6. Публикуется. Проверьте по возможности.
Спасибо,сейчас обновлюсь.
from yandex.music.api.
... пишу свой аналог ЯМузыки
Сижу изучаю.Подписался на вас. Надеюсь, однажды опенсорсните свои наработки. Своя Я.Музыка это оч круто, а то вдруг Яндекс прибьет олдскульную UWP-версию своего творения
https://t.me/YDiscordMusic
Надеюсь автор не будет ругаться)Раз интересно,там веду блог не спешно)
Я давно этим занимаюсь,но раньше юзал WebView2 а ща решил на либу перейти дабы свой UI сделать и т.п
from yandex.music.api.
@K1llMan слушай вопрос,а Волну как-то реально получать? Или нет?
Пока все остальное работает,после обновления,спасибо.
from yandex.music.api.
Моя волна это радиостанция с id "user:onyourwave".
from yandex.music.api.
Моя волна это радиостанция с id "user:onyourwave".
Да,понял,но я не очень понимаю правильно ли вызываю?
var wave = await _client.Radio.GetStationAsync(_storage,"user", "onyourwave");
var wave_data = wave.Result[0].GetTracks();
foreach(var test in wave_data)
{
Debug.WriteLine(test.Track.Title);
}
В итоге просто замораживает Ui и все.Я так понимаю тут похоже то же самое что было до этого в первом посте?Или нет и я просто криворукий?
from yandex.music.api.
await Task.Run(() =>
{
Debug.WriteLine(wave.Result[0].GetTracks()[0].Track.Title);
});
Да,такой костыль как и раньше срабатывает,для теста вывел хардкодом один трек.Все получил.
Видимо надо async опять метод делать?)
Или же я все же тупой просто)
from yandex.music.api.
В итоге просто замораживает Ui и все.Я так понимаю тут похоже то же самое что было до этого в первом посте?Или нет и я просто криворукий?
Здесь два подхода смешались. Методы-расширения из клиента идут, и они синхронные. Надо через API получать.
from yandex.music.api.
В итоге просто замораживает Ui и все.Я так понимаю тут похоже то же самое что было до этого в первом посте?Или нет и я просто криворукий?
Здесь два подхода смешались. Методы-расширения из клиента идут, и они синхронные. Надо через API получать.
Я вот и не очень понимаю просто как)
Доку смотрю,но вижу фигу)
from yandex.music.api.
Только версию метода асинхронную нужно использовать.
from yandex.music.api.
Только версию метода асинхронную нужно использовать.
А у меня еще такой сработал вроде
var station = await _client.Radio.GetStationAsync(_storage, "user", "onyourwave");
var wave = await _client.Radio.GetStationTracksAsync(_storage, station.Result[0]);
foreach(var test in wave.Result.Sequence)
{
Debug.WriteLine(test.Track.Title);
}
Но это я понимаю так не правильно?
from yandex.music.api.
Правильно. Это он и есть.
А,понял,спасибо)Отлично,будем думать теперь как его обновлять по мере проходки треков и т.д
Спасибо большое за отзывчивость)
from yandex.music.api.
По поводу обновления треков на станции может проблема с повторением, потому что методы отправки состояния не реализованы, а без них следующая порция треков может часто повторяться. Пробовал реализовать на примере из API на Python, но запрос не проходил, не было времени разбираться с ним.
from yandex.music.api.
По поводу обновления треков на станции может проблема с повторением, потому что методы отправки состояния не реализованы, а без них следующая порция треков может часто повторяться. Пробовал реализовать на примере из API на Python, но запрос не проходил, не было времени разбираться с ним.
Хм,понял...спасибо.Ну пока хоть что то и то радует.А то народ хотел волну :D
Они и на трубе,пк бывают повторяются,так что не критично особо думаю.
from yandex.music.api.
Related Issues (19)
- Nuget - публикация пакета последней версии HOT 2
- Зависают приложения Windows Forms HOT 15
- Ошибка создания сессии авторизации без DebugSettings HOT 7
- Возможности API HOT 9
- Исключение при попытке загрузить трек HOT 8
- Ошибка десериализации при вызове метода Landing.GetFeedAsync HOT 6
- Ошибка при авторизации HOT 2
- Возможности API HOT 3
- Асинхронный клиент, методы расширения HOT 1
- Библиотека умерла?
- Возможность скачивания треков из своей коллекции Yandex Music HOT 2
- Не работают ссылки сезонных плейлистов HOT 11
- Null reference exception при попытке получить треки персональных плейлистов из лендинга HOT 1
- А не планируется ли API по disk.yandex HOT 4
- System.Exception: 'Ошибка десериализации типа "YSearchAlbumModel".' HOT 3
- Авторизация через U/P не работает для YandexMusicClient HOT 2
- Про обновление документации и контрибьютинг HOT 2
- Remove redundant async/await statements for API methods HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from yandex.music.api.