Pull to refresh

Comments 16

как вы определяете похожесть музыки?
например если я прослушал один трек (т.е. лайкнул) и скипнул другой (т.е. дизлайкнул) чтобы рекомендовать дальше вам нужны алгоритмы находящие треки похожие на первый и не похожие на второй. как вы это делаете?
На сервере в базе данных каждому треку соответствует один или несколько жанров. Таким образом оценка предпочтения жанра вычисляется как среднее значение оценок предпочтения всех соответстаующих треков, прослушанных пользователем. Для каждого трека в процессе обновления вначале выбирается жанр, вероятность выбора которого пропорциональна оценке предпочтения. Далее внутри жанра выбирается случайный трек.
а жанр получаете из Free Music Archive?
сколько всего жанров?
вы сами пользуетесь своей программой?
а жанр получаете из Free Music Archive?
Да.
сколько всего жанров?
Сейчас 160.
вы сами пользуетесь своей программой?
Ежедневно.
с какими аналогами сравнивали? ваш лучше рекомендует?
много нужно прослушать чтобы настроить?

Я аналогов не нашёл (впрочем, это не значит, что их нет). Сложно судить насчёт «времени обучения». Я его слушаю ежедневно, но тем не менее иногда встречаю треки, которые мне резко не нравятся. Так что я бы не стал ожидать чудес. С другой стороны, после некоторого времени использования воспроизводимая музыка чаще всего относится к любимым жанрам.
первым был lastfm наверно, а сейчас их уже десятки.
я написал подобную программу несколько лет назад. за основу взял плейлисты вконтакте. в моем случае систему не нужно настраивать при наличии существующего плейлиста. т.е. она сразу играет «похожую» музыку. ну и у меня изначально обрабатывается 160 тысяч плейлистов (10 гигабайт в текстовом формате). что конечно дает намного больше информации о «похожести» музыки чем 160 жанров. я жанры не использовал вообще.
ну и она работает намного лучше яндекс музыки например (который тоже использует плейлисты вконтакте в качестве слепка музыкального вкуса) но почему-то в основном этот плейлист потом и рекомендует)
до релиза не дописал(
А можно подробнее?
logcat
2019-08-18 18:05:19.264 18132-18132/com.silindo.nota A/art: art/runtime/thread.cc:1661] No pending exception expected: java.lang.NoSuchMethodError: no non-static method "Lcom/silindo/nota/Client;.handlePlayerState(Lcom/silindo/nota/PlayerState;)V"
2019-08-18 18:05:19.264 18132-18132/com.silindo.nota A/art: art/runtime/thread.cc:1661] at c.d.a.j com.silindo.nota.Client.initialize(java.lang.String, java.lang.String) (:-2)
2019-08-18 18:05:19.264 18132-18132/com.silindo.nota A/art: art/runtime/thread.cc:1661] at void com.silindo.nota.Client.() (:8)
2019-08-18 18:05:19.264 18132-18132/com.silindo.nota A/art: art/runtime/thread.cc:1661] at void com.silindo.nota.MainActivity.onResume() (:-1)
2019-08-18 18:05:19.264 18132-18132/com.silindo.nota A/art: art/runtime/thread.cc:1661] at void android.app.Instrumentation.callActivityOnResume(android.app.Activity) (Instrumentation.java:1270)
2019-08-18 18:05:19.264 18132-18132/com.silindo.nota A/art: art/runtime/thread.cc:1661] at void android.app.Activity.performResume() (Activity.java:6788)
2019-08-18 18:05:19.264 18132-18132/com.silindo.nota A/art: art/runtime/thread.cc:1661] at android.app.ActivityThread$ActivityClientRecord android.app.ActivityThread.performResumeActivity(android.os.IBinder, boolean, java.lang.String) (ActivityThread.java:3431)
2019-08-18 18:05:19.264 18132-18132/com.silindo.nota A/art: art/runtime/thread.cc:1661] at void android.app.ActivityThread.handleResumeActivity(android.os.IBinder, boolean, boolean, boolean, int, java.lang.String) (ActivityThread.java:3494)
2019-08-18 18:05:19.264 18132-18132/com.silindo.nota A/art: art/runtime/thread.cc:1661] at void android.app.ActivityThread.handleLaunchActivity(android.app.ActivityThread$ActivityClientRecord, android.content.Intent, java.lang.String) (ActivityThread.java:2757)
2019-08-18 18:05:19.264 18132-18132/com.silindo.nota A/art: art/runtime/thread.cc:1661] at void android.app.ActivityThread.-wrap12(android.app.ActivityThread, android.app.ActivityThread$ActivityClientRecord, android.content.Intent, java.lang.String) (ActivityThread.java:-1)
2019-08-18 18:05:19.264 18132-18132/com.silindo.nota A/art: art/runtime/thread.cc:1661] at void android.app.ActivityThread$H.handleMessage(android.os.Message) (ActivityThread.java:1496)
2019-08-18 18:05:19.264 18132-18132/com.silindo.nota A/art: art/runtime/thread.cc:1661] at void android.os.Handler.dispatchMessage(android.os.Message) (Handler.java:102)
2019-08-18 18:05:19.264 18132-18132/com.silindo.nota A/art: art/runtime/thread.cc:1661] at void android.os.Looper.loop() (Looper.java:154)
2019-08-18 18:05:19.264 18132-18132/com.silindo.nota A/art: art/runtime/thread.cc:1661] at void android.app.ActivityThread.main(java.lang.String[]) (ActivityThread.java:6186)
2019-08-18 18:05:19.264 18132-18132/com.silindo.nota A/art: art/runtime/thread.cc:1661] at java.lang.Object java.lang.reflect.Method.invoke!(java.lang.Object, java.lang.Object[]) (Method.java:-2)
2019-08-18 18:05:19.264 18132-18132/com.silindo.nota A/art: art/runtime/thread.cc:1661] at void com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run() (ZygoteInit.java:889)
2019-08-18 18:05:19.264 18132-18132/com.silindo.nota A/art: art/runtime/thread.cc:1661] at void com.android.internal.os.ZygoteInit.main(java.lang.String[]) (ZygoteInit.java:779)
Стабильно валится? После апдейта или чистая инсталляция?
Стабильно валится?
При каждом запуске

После апдейта или чистая инсталляция?
Чистая
Я в шоке, похоже последний апдейт поломанный из-за включенной обфускации и сжатия ресурсов.
Попробуйте версию 1.0.3.

Запускается.
Выключил загрузку только через Wi-Fi и не понимаю что происходит, ибо нет никаких индикаторов.
Если зайти в приложение, то появляется уведомление. Потом сам закрываешь приложение и уведомление сколько не убирай появляется обратно.

Я скоро это исправлю. Проведите (swipe out) по уведомлению в состоянии паузы.
Sign up to leave a comment.

Articles