TracklistController.remove()
actualmente solo elimina la pista y activa el evento tracklist_changed
:
No estoy seguro de que tenga sentido seguir reproduciendo la pista actual si se acaba de eliminar de la lista de pistas; ¿quizás sería mejor llamar stop()
o next()
en ese momento?
Deberíamos comprobar lo que hace MPD
MPD elimina la pista y luego salta a la siguiente en la lista de reproducción si está disponible. De lo contrario, la reproducción se detiene.
¿Alguien empezó a arreglar este error? Puedo intentar encontrar una solución.
No, adelante. Dado que nadie ha intervenido, creo que podemos asumir que reflejar el comportamiento de MPD es razonable.
Está bien. Algunas observaciones:
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'
Creé una rama con una solución para este problema, que funciona con todas las pistas, incluidas las transmisiones, donde hubo algunos problemas adicionales relacionados con el envío de mensajes de almacenamiento en búfer de gstreamer al detenerse. Actualmente falla varias de las pruebas pero funciona en la práctica. Se basa en la rama de listas de reproducción de la API web @kingosticks , por lo que también incluye esa función. Está aquí https://github.com/fatg3erman/mopidy/tree/fix/consume-current-track si alguien está interesado en probarlo para obtener más pruebas beta antes de intentar corregir las pruebas.
En realidad, parte de ese comentario es una tontería :) No se basa en la rama web-api-playlists, porque eso es mopidy-spotify y no está relacionado con este problema :) No he bebido suficiente té todavía hoy ...
Estoy de vacaciones en este momento, pero puedo revisar cuando regrese el próximo fin de semana (si lo desea y hacer una solicitud de extracción).
Gracias. Se agregó PR 1689 para esto.
aún reproducible con 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: elimina la pista que se está reproduciendo actualmente y espera a que termine
con ncmpcpp: reproduce varias pistas; coloque el cursor sobre cualquier otra pista que no se esté reproduciendo actualmente; presione shift-c para eliminar todas las pistas excepto las que se desplazan sobre ellas; Espere a que termine la pista actual.
Comentario más útil
MPD elimina la pista y luego salta a la siguiente en la lista de reproducción si está disponible. De lo contrario, la reproducción se detiene.