Mopidy: НСопрСдСлСнноС ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΈ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠΈ воспроизводимой Π² Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π΄ΠΎΡ€ΠΎΠΆΠΊΠΈ ΠΈΠ· списка Π΄ΠΎΡ€ΠΎΠΆΠ΅ΠΊ.

Π‘ΠΎΠ·Π΄Π°Π½Π½Ρ‹ΠΉ Π½Π° 7 янв. 2017  Β·  10ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ  Β·  Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: mopidy/mopidy

TracklistController.remove() настоящСС врСмя просто удаляСт Ρ‚Ρ€Π΅ΠΊ ΠΈ запускаСт событиС tracklist_changed :

https://github.com/mopidy/mopidy/blob/2b7f12b8542d04190a85ed890edac1ce9192d9e8/mopidy/core/tracklist.py#L567 -L572

Π― Π½Π΅ ΡƒΠ²Π΅Ρ€Π΅Π½, Ρ‡Ρ‚ΠΎ ΠΈΠΌΠ΅Π΅Ρ‚ смысл ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Ρ‚ΡŒ Π²ΠΎΡΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ΡŒ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ Ρ‚Ρ€Π΅ΠΊ, Ссли ΠΎΠ½ Π±Ρ‹Π» Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Ρ‚ΠΎ ΡƒΠ΄Π°Π»Π΅Π½ ΠΈΠ· списка Ρ‚Ρ€Π΅ΠΊΠΎΠ² - ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ, Π»ΡƒΡ‡ΡˆΠ΅ Π±Ρ‹Π»ΠΎ Π±Ρ‹ вмСсто этого Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ stop() ΠΈΠ»ΠΈ next() ?

https://github.com/mopidy/mopidy/blob/2b7f12b8542d04190a85ed890edac1ce9192d9e8/mopidy/core/playback.py#L304 -L305

Π‘Π°ΠΌΡ‹ΠΉ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

MPD удаляСт Ρ‚Ρ€Π΅ΠΊ, Π° Π·Π°Ρ‚Π΅ΠΌ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΡ‚ ΠΊ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌΡƒ Π² спискС воспроизвСдСния, Ссли ΠΎΠ½ доступСн. Π’ ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС воспроизвСдСниС останавливаСтся.

ВсС 10 ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

ΠœΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ mpd

MPD удаляСт Ρ‚Ρ€Π΅ΠΊ, Π° Π·Π°Ρ‚Π΅ΠΌ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΡ‚ ΠΊ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌΡƒ Π² спискС воспроизвСдСния, Ссли ΠΎΠ½ доступСн. Π’ ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС воспроизвСдСниС останавливаСтся.

ΠšΡ‚ΠΎ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ Π½Π°Ρ‡Π°Π» ΠΈΡΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ эту ΠΎΡˆΠΈΠ±ΠΊΡƒ? Π― ΠΌΠΎΠ³Ρƒ ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ Π½Π°ΠΉΡ‚ΠΈ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅.

НСт, Π΄Π΅Ρ€Π·Π°ΠΉ. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π½ΠΈΠΊΡ‚ΠΎ Π½Π΅ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΠ»ΡΡ, я Π΄ΡƒΠΌΠ°ΡŽ, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π·Π΅Ρ€ΠΊΠ°Π»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ повСдСния MPD являСтся Ρ€Π°Π·ΡƒΠΌΠ½Ρ‹ΠΌ.

Ok. НСкоторыС наблюдСния:

  • PlaybackController ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ self._current_tl_track для поиска Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ‚Ρ€Π΅ΠΊΠΎΠ², Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ next (). Если ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒ воспроизвСдСниС ΠΈΠ· списка Ρ‚Ρ€Π΅ΠΊΠΎΠ² послС удалСния Ρ‚Ρ€Π΅ΠΊΠ°, Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΡΠ²ΡΠ·Π°Ρ‚ΡŒ self._current_tl_track с ΠΎΡΡ‚Π°Π²ΡˆΠΈΠΌΠΈΡΡ Ρ‚Ρ€Π΅ΠΊΠ°ΠΌΠΈ Π² трСклистС (ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ большС Π½Π΅ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ _current_tl_track). Достаточно просто ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π² TracklistController.tl_tracks ΠΈ воспроизвСсти Ρ‚Ρ€Π΅ΠΊ со Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ tlid Π²Ρ‹ΡˆΠ΅, Ρ‡Π΅ΠΌ tlid _current_tl_track. Π‘ΠΎΠΎΠ±Ρ‰ΠΈΡ‚Π΅ ΠΌΠ½Π΅, Ссли я Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ пропустил, Ρ‡Ρ‚ΠΎ упростило Π±Ρ‹ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ Ρ‚Ρ€Π΅ΠΊΠ°.
  • PlaybackController._on_about_to_finish () выбрасываСт AttributeError ΠΏΡ€ΠΈ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠΈ воспроизводимой Π΄ΠΎΡ€ΠΎΠΆΠΊΠΈ (Ρ‚.Π΅. _on_tracklist_change () Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΠΎ ΠΊΡ€Π°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅Ρ€Π΅ stop (), ΠΊΠΎΠ³Π΄Π° Π΄ΠΎΡ€ΠΎΠΆΠΊΠ° Π±Ρ‹Π»Π° ΡƒΠ΄Π°Π»Π΅Π½Π°):
    File "/home/aj/mopidy-dev/mopidy/mopidy/core/playback.py", line 270, in _on_about_to_finish self._last_position = self._current_tl_track.track.length AttributeError: 'NoneType' object has no attribute 'track'
  • Π—Π°ΠΌΠ΅Ρ‚ΠΈΠ», Ρ‡Ρ‚ΠΎ Π½Π΅Ρ‚ ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½Ρ‹Ρ… тСстов для _on_tracklist_change (), Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ подсказки Π² тСстах _on_about_to_finish ()
  • Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ MPD, VLC ΠΏΡ€Π΅ΠΊΡ€Π°Ρ‰Π°Π΅Ρ‚ воспроизвСдСниС ΠΏΡ€ΠΈ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠΈ Ρ‚Ρ€Π΅ΠΊΠ° Π²ΠΎ врСмя воспроизвСдСния.

Π― создал Π²Π΅Ρ‚ΠΊΡƒ с исправлСниСм этой ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹, которая Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ со всСми Ρ‚Ρ€Π΅ΠΊΠ°ΠΌΠΈ, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ ΠΏΠΎΡ‚ΠΎΠΊΠΈ, Π³Π΄Π΅ Π±Ρ‹Π»ΠΈ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹, связанныС с ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΎΠΉ gstreamer сообщСний Π±ΡƒΡ„Π΅Ρ€ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΡ€ΠΈ остановкС. Π’ настоящСС врСмя ΠΎΠ½ Π½Π΅ ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ нСсколько тСстов, Π½ΠΎ Π½Π° ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚. Он основан Π½Π° Π²Π΅Ρ‚ΠΊΠ΅ плСйлистов https://github.com/fatg3erman/mopidy/tree/fix/consume-current-track, Ссли ΠΊΠΎΠΌΡƒ-Ρ‚ΠΎ интСрСсно ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π΅Ρ‰Π΅ ΠΊΠ°ΠΊΠΎΠ΅-Ρ‚ΠΎ Π±Π΅Ρ‚Π°-тСстированиС, ΠΏΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ я ΠΏΠΎΠΏΡ‹Ρ‚Π°ΡŽΡΡŒ ΠΈΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ тСсты.

На самом Π΄Π΅Π»Π΅ Ρ‡Π°ΡΡ‚ΡŒ этого коммСнтария - Π΅Ρ€ΡƒΠ½Π΄Π° :) Он Π½Π΅ основан Π½Π° Π²Π΅Ρ‚ΠΊΠ΅ web-api-playlists, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ это mopidy-spotify ΠΈ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ ΠΊ этой ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ΅ :) Π― Π΅Ρ‰Π΅ Π½Π΅ Π²Ρ‹ΠΏΠΈΠ» достаточно чая ...

Π― сСйчас Π² отпускС, Π½ΠΎ ΠΌΠΎΠ³Ρƒ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΎΠ±Π·ΠΎΡ€, ΠΊΠΎΠ³Π΄Π° Π²Π΅Ρ€Π½ΡƒΡΡŒ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Π²Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹Π΅ (Ссли Ρ…ΠΎΡ‚ΠΈΡ‚Π΅, ΠΈ сдСлайтС запрос Π½Π° пСрСнос).

Бпасибо. Для этого Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ PR 1689.

всС Π΅Ρ‰Π΅ воспроизводится с Mopidy 3.0.1

Traceback (most recent call last):
  File "/usr/lib/python3.7/site-packages/mopidy/audio/actor.py", line 559, in _on_about_to_finish
    self._about_to_finish_callback()
  File "/usr/lib/python3.7/site-packages/mopidy/core/playback.py", line 178, in _on_about_to_finish_callback
    kwargs={},
  File "/usr/lib/python3.7/site-packages/pykka/_ref.py", line 114, in ask
    return future.get(timeout=timeout)
  File "/usr/lib/python3.7/site-packages/pykka/_threading.py", line 45, in get
    _compat.reraise(*self._data['exc_info'])
  File "/usr/lib/python3.7/site-packages/pykka/_compat/__init__.py", line 29, in reraise
    raise value
  File "/usr/lib/python3.7/site-packages/pykka/_actor.py", line 193, in _actor_loop
    response = self._handle_receive(envelope.message)
  File "/usr/lib/python3.7/site-packages/pykka/_actor.py", line 299, in _handle_receive
    return callee(*message.args, **message.kwargs)
  File "/usr/lib/python3.7/site-packages/mopidy/core/playback.py", line 190, in _on_about_to_finish
    self._last_position = self._current_tl_track.track.length
AttributeError: 'NoneType' object has no attribute 'track'

STR: ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ воспроизводимый Ρ‚Ρ€Π΅ΠΊ ΠΈ Π΄ΠΎΠΆΠ΄Π°Ρ‚ΡŒΡΡ Π΅Π³ΠΎ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ

с ncmpcpp: воспроизвСсти нСсколько Ρ‚Ρ€Π΅ΠΊΠΎΠ²; Π½Π°Π²Π΅Π΄ΠΈΡ‚Π΅ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ ΠΌΡ‹ΡˆΠΈ Π½Π° любой Π΄Ρ€ΡƒΠ³ΠΎΠΉ Ρ‚Ρ€Π΅ΠΊ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π² Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π½Π΅ воспроизводится; Π½Π°ΠΆΠΌΠΈΡ‚Π΅ shift-c, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ всС Ρ‚Ρ€Π΅ΠΊΠΈ, ΠΊΡ€ΠΎΠΌΠ΅ Π·Π°Π²ΠΈΡΡˆΠΈΡ…; Π΄ΠΎΠΆΠ΄ΠΈΡ‚Π΅ΡΡŒ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ Ρ‚Ρ€Π΅ΠΊΠ°.

Π‘Ρ‹Π»Π° Π»ΠΈ эта страница ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ?
0 / 5 - 0 Ρ€Π΅ΠΉΡ‚ΠΈΠ½Π³ΠΈ