TracklistController.remove()
momentan nur den Track und löst das tracklist_changed
Event aus:
Ich bin mir nicht sicher, ob es sinnvoll ist, den aktuellen Track weiter abzuspielen, wenn er gerade aus der Trackliste entfernt wurde - vielleicht wäre es besser, stattdessen stop()
oder next()
aufzurufen?
Wir sollten überprüfen, was mpd macht
MPD entfernt den Track und springt dann zum nächsten in der Playlist, falls verfügbar. Andernfalls stoppt die Wiedergabe.
Hat jemand angefangen, diesen Fehler zu beheben? Ich kann versuchen, eine Lösung zu finden.
Nein, mach es. Da sich niemand gemeldet hat, können wir davon ausgehen, dass es vernünftig ist, das Verhalten von MPD zu spiegeln.
Okay. Einige Beobachtungen:
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'
Ich habe einen Zweig mit einem Fix für dieses Problem erstellt, der mit allen Tracks einschließlich Streams funktioniert, wo es einige zusätzliche Probleme im Zusammenhang mit dem Senden von Puffernachrichten durch gstreamer beim Stoppen gab. Es besteht derzeit mehrere Tests nicht, aber es funktioniert in der Praxis. Es basiert auf dem @kingosticks- Web-API-Wiedergabelistenzweig, sodass es auch diese Funktion enthält. Es ist hier https://github.com/fatg3erman/mopidy/tree/fix/consume-current-track, wenn jemand daran interessiert ist, es auszuprobieren, um weitere Betatests zu erhalten, bevor ich versuche, die Tests zu beheben.
Eigentlich ist ein Teil dieses Kommentars Unsinn :) Er basiert nicht auf dem Web-Api-Playlists-Zweig, denn das ist mopidy-spotify und hat nichts mit diesem Problem zu tun :) Ich habe heute noch nicht genug Tee getrunken....
Ich bin gerade im Urlaub, kann aber nächstes Wochenende nachsehen, wenn ich wieder da bin (wenn Sie möchten und eine Pull-Anfrage stellen).
Vielen Dank. Dazu PR 1689 hinzugefügt.
noch reproduzierbar mit 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: Entfernen Sie den aktuell wiedergegebenen Titel und warten Sie, bis er fertig ist
mit ncmpcpp: mehrere Tracks abspielen; Bewegen Sie den Mauszeiger über einen anderen Titel, der derzeit nicht abgespielt wird; drücken Sie Shift-c, um alle Tracks mit Ausnahme der darüber schwebenden Tracks zu entfernen; Warten Sie, bis der aktuelle Titel beendet ist.
Hilfreichster Kommentar
MPD entfernt den Track und springt dann zum nächsten in der Playlist, falls verfügbar. Andernfalls stoppt die Wiedergabe.