Closed nebulosa2007 closed 2 days ago
Попытался воспроизвести на Samsung A73 + Pixel Experience (Android 14)
Проблема к сожалению не проявилась
Видимо проблема либо подвязана на версию дройда, либо на прошивку....
Касета из Nightly репы 13.06.2024
Эта ошибка проявляется не сразу, через какое-то время. Я когда проверял разные версии сборок, нашёл некоторую закономерность как её спровоцировать - выключаешь экран телефона, через минуту-две пробуешь тапнуть пальцем или взять в руку. В этот момент, телефон включает экран и распознаёт лицо. Так вот, на этом этапе экран не включается, приходится несколько раз нажимать кнопку включения, интерфейс кое-как проявляется, он включается и разблокируется. Через ещё некоторое количество секунд использования телефона - появляется ошибка выше.
Прошивка не кастомная, стандартная, все обновления стоят. Другого телефона нет, да и как это поможет, не менять же телефон из-за плейера. В консоли никакого нового вывода нет.
Еще, есть зацепка, накидал скрипт (по мотивам README утилиты playerctl)
#!/bin/env bash
unset G_MESSAGES_DEBUG
echo "# Prints 'Now playing: Lana Del Rey - Born To Die - Video Games'"
playerctl metadata --format "Now playing: {{ artist }} - {{ album }} - {{ title }}"
echo Status: $?
echo
export G_MESSAGES_DEBUG=playerctl
echo "# Prints 'Total length: 3:23'"
playerctl metadata --format "Total length: {{ duration(mpris:length) }}"
echo Status: $?
unset G_MESSAGES_DEBUG
echo
echo "# Prints 'At position: 1:16'"
playerctl position --format "At position: {{ duration(position) }}"
echo Status: $?
echo
echo "# Prints 'Artist in lowercase: lana del rey'"
playerctl metadata --format "Artist in lowercase: {{ lc(artist) }}"
echo Status: $?
echo
echo "# Prints 'STATUS: PLAYING'"
playerctl status --format "STATUS: {{ uc(status) }}"
echo Status: $?
echo
export G_MESSAGES_DEBUG=playerctl
echo "# Prints the time remaining in the track (e.g, 'Time remaining: 2:07')"
playerctl metadata --format "Time remaining: {{ duration(mpris:length - position) }}"
echo Status: $?
unset G_MESSAGES_DEBUG
echo
echo "# Prints volume from 0 - 100"
playerctl metadata --format "Volume: {{ volume * 100 }}"
echo Status: $?
echo
export G_MESSAGES_DEBUG=playerctl
playerctl metadata --format '{{ playerName }}: {{ artist }} - {{ title }} {{ duration(position) }}|{{ duration(mpris:length) }}'
echo Status: $?
unset G_MESSAGES_DEBUG
Всё отрабатывает нормально, кроме:
...
# Prints 'Total length: 3:23'
(playerctl:168872): playerctl-DEBUG: 09:13:27.485: Getting list of player names from D-Bus
(playerctl:168872): playerctl-DEBUG: 09:13:27.486: Playerctld is running. Getting names from there.
(playerctl:168872): playerctl-DEBUG: 09:13:27.489: Getting list of player names from D-Bus
(playerctl:168872): playerctl-DEBUG: 09:13:27.491: initializing player: io.github.Rirusha.Cassette-Devel
Could not execute command: function duration can only be called on track position values
Status: 1
...
# Prints the time remaining in the track (e.g, 'Time remaining: 2:07')
(playerctl:168888): playerctl-DEBUG: 09:13:27.549: Getting list of player names from D-Bus
(playerctl:168888): playerctl-DEBUG: 09:13:27.550: Playerctld is running. Getting names from there.
(playerctl:168888): playerctl-DEBUG: 09:13:27.553: Getting list of player names from D-Bus
(playerctl:168888): playerctl-DEBUG: 09:13:27.555: initializing player: io.github.Rirusha.Cassette-Devel
Could not execute command: Got unsupported operand types for -: 'i' and 'x'
Status: 1
На других плейерах скрипт отрабатывает штатно.
https://github.com/Rirusha/Cassette/commit/e3fd50c2da5557dff05bc1274122d93b8307753c
Здесь уменьшено отправка состояния проигрывания в 10 раз. Это может решить вашу проблему.
Была ли решена проблема?
Кажется, да, всё наладилось. Отзывчивость тоже улучшилась, при нажатии на кнопки управления на телефоне.
Скрипт выше также с ошибками отрабатывает, но это уже второстепенно.
Использую Cassette (Devel), всё стандартно, всё играет.
У меня подключен телефон к ноутбуку через GSConnect, когда запущен Cassette, то на телефоне появляется циклическая ошибка
System UI Error
(у меняAndroid 13, Pixel 4
) и весь интерфейс не реагирует на нажатия или тапы, телефон не просыпается, экран не включает (только после нескольких нажатий кнопки включения). Если нажатьWait
, то она появится через некоторое (короткое, до минуты) время, если нажатьClose app
, то весь интерфейс перезапустится, cпустя пару минут эта ошибка вылезает вновь.Как только выключаешь Cassette - всё работает без нареканий, другие плееры (mpv, youtube-music) которыми тоже можно управлять с телефона - работают корректно.
Сделал git bisect:
Проблемный коммит: https://github.com/Rirusha/Cassette/commit/7be6b9df9e15c80727254dc181d54217c483f20d