Bug #1480
closedНекорректное проигрывание/отображение трека после смены плейлиста.
100%
Description
0. Что-то воспроизводится из текущего плейлиста
1. Сохраняем плейлист
2. Загружаем другой плейлист
3. Ставим на воспроизведение трек с него
4. Очищаем плейлист (можно пропустить)
5. Загружаем плейлист из п.1.
6. Жмякаем stop
7. Жмякаем play
8. В итоге воспроизводится трек из п.3., но отображается трек из п.0.
Updated by 0xd34df00d almost 11 years ago
- Status changed from New to Assigned
- Target version set to 0.6.65
- Estimated time set to 2:00 h
Updated by 0xd34df00d almost 11 years ago
- Status changed from Assigned to Resolved
- % Done changed from 0 to 100
Applied in changeset main|commit:bee98315a77ea8bc27e9b4836e6aa6d49e052160.
Updated by Mellon almost 11 years ago
Хренота.
Теперь тупо теряются метаданные(теги):
3. http://dump.bitcheese.net/images/erovedi/screenshot.png
5. http://dump.bitcheese.net/images/ixylutu/screenshot.png
7. http://dump.bitcheese.net/images/akomewa/screenshot.png
Updated by Mellon almost 11 years ago
кроме того, теряется сохраненный трек из п.0-1. То есть если при воспроизведении какого-то трека из текущего плейлиста, загрузить новый плейлист с сохраненной позицией. то после доигрывания текущего трека воспроизведение загруженного плейлиста начнется с 1 трека в плейлисте, а не с сохранненной позиции.
В общем, тут уже регресс пошел.
Updated by 0xd34df00d almost 11 years ago
- Status changed from Resolved to Assigned
- % Done changed from 100 to 0
Ну я и не тестил эту фичу, надеялся, что фикс от #1483 поможет. Щас посмотрим.
Updated by 0xd34df00d almost 11 years ago
Как смотришь на то, чтоб при замене плейлиста обрывать воспроизведение текущей песни и сразу играть новый плейлист?
Updated by Mellon almost 11 years ago
Ну... так и делают в некоторых плеерах, но есть одно но: при загрузке больших плейлистов, пока интерфейс LMP недоступен и пользователю нечего поделать, продолжает звучать музыка. если же оборвать, то будет тишина от нескольких секунд до нескольких минут. Если для тебя это приемлимая цена, то можно и так.
Updated by Mellon almost 11 years ago
с другой стороны, можно обрывать уже после загрузки плейлиста. Это более приемлимо
Updated by 0xd34df00d almost 11 years ago
Эм, я ж чинил слоупочную работу LMP с очередью воспроизведения. В частности, если все песни из плейлиста в коллекции, то всё должно быть быстро. Или они не в коллекции?
Обрываться будет где-то после загрузки плейлиста уж точно, но я не уверен, надо по коду смотреть.
Ну или можно просто добавлять сохраненную песню из нового плейлиста в one shot queue, только сейчас придумал. Кажется мне, что это наиболее оптимальный вариант: сейчас ничего не прерывается, и пользователь видит, что следующим будет проиграно. А то, может, он и забыл вовсе, что в плейлисте метадата ещё какая есть.
Updated by Magog almost 11 years ago
Не думаю, что обрывать песню - приемлимый вариант.
Updated by 0xd34df00d almost 11 years ago
- Estimated time changed from 2:00 h to 5:00 h
Updated by 0xd34df00d almost 11 years ago
- Status changed from Assigned to Resolved
- % Done changed from 0 to 100
Applied in changeset main|commit:2225f3ea5e0aa98d8decb5419d7b6aa40de85376.
Updated by Mellon almost 11 years ago
логов вброшу ща.
пп6-7:
debug.log
[09.01.2014 02:35:02.254] [0x7f057eb5ed70] [2716] void LeechCraft::LMP::Player::handleStateChanged() 2 [09.01.2014 02:35:02.256] [0x7f057eb5ed70] [2717] void LeechCraft::LMP::Player::handleStateChanged() 1 [09.01.2014 02:35:04.153] [0x7f057eb5ed70] [2719] void LeechCraft::LMP::Player::handleStateChanged() 2 [09.01.2014 02:35:04.163] [0x7f057eb5ed70] [2720] void LeechCraft::LMP::SourceObject::HandleElementMsg(GstMessage*) file:///var/lib/mpd/music/vk/ikimono%20gakari%20-%20Sakura.mp3 [09.01.2014 02:35:04.167] [0x7f057eb5ed70] [2721] void LeechCraft::LMP::Player::handleStateChanged() 4
warning.log:
[09.01.2014 02:35:04.123] [0x7f057eb5ed70] [2718] void LeechCraft::LMP::{anonymous}::TagFunction(const GstTagList*, const gchar*, gpointer) unhandled tag type 139661618512608 for private-id3v2-frame
Updated by Mellon almost 11 years ago
если в п3. был поток с радио:
debug.log:
[09.01.2014 02:42:42.672] [0x7f057eb5ed70] [2809] void LeechCraft::LMP::Player::handleStateChanged() 2 [09.01.2014 02:42:42.678] [0x7f057eb5ed70] [2810] void LeechCraft::LMP::Player::handleStateChanged() 1 [09.01.2014 02:42:44.230] [0x7f057eb5ed70] [2813] void LeechCraft::LMP::SourceObject::SetupSource() user-agent property not found for QUrl( "http://animeradio.su:8000/" ) "|WebKitWebSrc|" soup rank: 256 webkit rank: 0
warning.log:
[09.01.2014 02:42:42.681] [0x7f057eb5ed70] [2811] int LeechCraft::LMP::LocalCollection::FindAlbum(const QString&, const QString&) const artist not found: "Makoto Fujiwara" "AnimeRadio.SU" [09.01.2014 02:42:44.229] [0x7f057eb5ed70] [2812] uint LeechCraft::LMP::{anonymous}::GetRank(const char*) cannot find factory WebKitWebSrc
И тут уже у нас ничо не воспроизведется в п. 7.
Updated by Mellon almost 11 years ago
Теперь ситуация с радиопотоком изменилась: в п. 7 он уже проигрывается, но теги теряются по-прежнему.
debug.log:
[09.01.2014 05:11:33.055] [0x7f2d16d76d70] [858] void LeechCraft::LMP::Player::handleStateChanged() 2 [09.01.2014 05:11:33.063] [0x7f2d16d76d70] [859] void LeechCraft::LMP::Player::handleStateChanged() 1 [09.01.2014 05:11:39.207] [0x7f2d16d76d70] [861] void LeechCraft::LMP::SourceObject::SetupSource() setting user-agent to "LeechCraft LMP/0.6.60-151-gd7696e9 (GStreamer 0.10.36)" [09.01.2014 05:11:39.444] [0x7f2d16d76d70] [862] void LeechCraft::LMP::Player::handleStateChanged() 2 [09.01.2014 05:11:39.447] [0x7f2d16d76d70] [863] void LeechCraft::LMP::SourceObject::HandleElementMsg(GstMessage*) http://animeradio.su:8000/ [09.01.2014 05:11:39.520] [0x7f2d16d76d70] [865] void LeechCraft::LMP::Player::handleStateChanged() 4
warning.log:
[09.01.2014 05:11:33.066] [0x7f2d16d76d70] [860] int LeechCraft::LMP::LocalCollection::FindAlbum(const QString&, const QString&) const artist not found: "JAM Project" "AnimeRadio.SU" [09.01.2014 05:11:39.449] [0x7f2d16d76d70] [864] int LeechCraft::LMP::LocalCollection::FindAlbum(const QString&, const QString&) const artist not found: "JAM Project" "AnimeRadio.SU" [09.01.2014 05:11:39.523] [0x7f2d16d76d70] [866] int LeechCraft::LMP::LocalCollection::FindAlbum(const QString&, const QString&) const artist not found: "JAM Project" "AnimeRadio.SU" [09.01.2014 05:12:20.064] [0x7f2d16d76d70] [870] void LeechCraft::DockToolbarManager::AddDock(QDockWidget*, Qt::DockWidgetArea) double-adding QDockWidget(0x7f2d1724c5e0) "Azoth"
Updated by Mellon almost 11 years ago
Теперь — это после пересборки с коммитами с
commit 3585a210bb16947edf01b891bc489ea46047b505 Author: 0xd34df00d <0xd34df00d@gmail.com> Date: Thu Jan 9 02:00:28 2014 +0400 [LMP] Drain after error code detection.
по
commit d7696e96f216cc93677c19b58076c57609c88bf8 Author: 0xd34df00d <0xd34df00d@gmail.com> Date: Thu Jan 9 03:12:34 2014 +0400 [LMP] Better error messages when mask expanding fails.
Updated by 0xd34df00d almost 11 years ago
Немножко подвигал логику, могло стать получше, ибо у меня не воспроизводится.
Updated by Mellon almost 11 years ago
:( да нет, всё также, тока ща ещё и сохраняет в плейлист не текущий трек, а следующий за ним.
Updated by Mellon almost 11 years ago
ок, теперь сохраняет правильно. возвращаемся к сабжу.
warning.log:
[13.01.2014 21:42:44.075] [0x7f7f7cb4fd70] [200] void LeechCraft::LMP::{anonymous}::TagFunction(const GstTagList*, const gchar*, gpointer) unhandled tag type 140185539894736 for date [13.01.2014 21:42:44.076] [0x7f7f7cb4fd70] [201] void LeechCraft::LMP::{anonymous}::TagFunction(const GstTagList*, const gchar*, gpointer) unhandled tag type 140185539897456 for image
debug.log:
[13.01.2014 21:42:41.886] [0x7f7f7cb4fd70] [193] void LeechCraft::LMP::Player::handleStateChanged() 2 [13.01.2014 21:42:41.887] [0x7f7f7cb4fd70] [195] void LeechCraft::LMP::Player::handleStateChanged() 1 [13.01.2014 21:42:44.131] [0x7f7f7cb4fd70] [202] void LeechCraft::LMP::Player::handleStateChanged() 2 [13.01.2014 21:42:44.132] [0x7f7f7cb4fd70] [204] void LeechCraft::LMP::SourceObject::HandleElementMsg(GstMessage*) file:///var/lib/mpd/music/Music/vocaloid/Vocaloid%20S eries%20MP3/Albums/Multi-Vocaloids/Lovegazer/12.%20think%20so,%20%5BBonus%20Track%5D.mp3 [13.01.2014 21:42:44.196] [0x7f7f7cb4fd70] [205] void LeechCraft::LMP::Player::handleStateChanged() 4 [13.01.2014 21:43:00.751] [0x7f7f7cb4fd70] [207] void LeechCraft::LMP::Player::handleStateChanged() 2 [13.01.2014 21:43:00.752] [0x7f7f7cb4fd70] [209] void LeechCraft::LMP::Player::handleStateChanged() 1
Сегодня для пересборок кутей снова не осталось времени. :(
Updated by 0xd34df00d almost 11 years ago
В логах вроде все нормально. Еще раз, какая сейчас ошибка в итоге?
Updated by Mellon almost 11 years ago
- Status changed from Resolved to Closed
Ок, чувак. Давай закроем-ка этот баг. Ибо тут вот я пожмякал и тест-кейс сильно укоротился.
Updated by Mellon almost 11 years ago
- Related to Bug #1498: Потеря тегов при воспроизведении из очищенного плейлиста. added
Updated by Mellon over 10 years ago
- Related to Bug #1615: Некорректная обработка смены плейлиста и segv added