TracklistController.remove()
目前只是移除轨道并触发tracklist_changed
事件:
我不确定如果它刚刚从曲目列表中删除,继续播放当前曲目是否有意义 - 也许此时调用stop()
或next()
会更好?
我们应该检查 mpd 做了什么
MPD 删除曲目,然后跳转到播放列表中的下一个(如果可用)。 否则播放停止。
有人开始修复这个错误吗? 我可以尝试想出一个解决方案。
不行,加油由于没有人提出意见,我认为我们可以假设镜像 MPD 的行为是合理的。
好的。 一些观察:
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'
我已经创建了一个分支来解决这个问题,它适用于包括流在内的所有轨道,其中存在一些与 gstreamer 在停止时发送缓冲消息有关的其他问题。 它目前未能通过多项测试,但它在实践中有效。 它基于@kingosticks web api 播放列表分支,因此它还包含该功能。 如果有人有兴趣尝试在我尝试修复测试之前进行更多 Beta 测试,请访问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 删除所有但悬停的轨道; 等待当前曲目完成。
最有用的评论
MPD 删除曲目,然后跳转到播放列表中的下一个(如果可用)。 否则播放停止。