ããã«ã¡ã¯ãã¿ããªã
mopidy1.1.0ã§ã€ã³ã¿ãŒãããã©ãžãªã¹ããªãŒã ãåçããéã«ããã€ãã®åé¡ã«çŽé¢ããŠããiamã ã¹ããªãŒã ã®åçãæ°ç§éåæ¢ããŠããç¶è¡ããå ŽåããããŸãã ãããã¡ãªã³ã°ã®åé¡ãèŠã€ããããã«ãmopidydebbugingæ©èœã䜿çšããŸããã ãã°ã¯æ¬¡ã®ããã«ãªããŸãã
EBUG 2015-09-10 15:37:27,085 [12014:MainThread] mopidy.audio.gst
Got state-changed message: old=GST_STATE_PLAYING new=GST_STATE_PAUSED pending=GST_STATE_VOID_PENDING
DEBUG 2015-09-10 15:37:27,085 [12014:MainThread] mopidy.audio.actor
Audio event: state_changed(old_state=playing, new_state=paused, target_state=playing)
DEBUG 2015-09-10 15:37:27,086 [12014:MainThread] mopidy.audio.gst
Got async-done.
DEBUG 2015-09-10 15:37:27,086 [12014:MainThread] mopidy.listener
Sending state_changed to AudioListener: {'old_state': u'playing', 'target_state': u'playing', 'new_state': u'paused'}
DEBUG 2015-09-10 15:37:27,533 [12014:HttpServer] mopidy.http.handlers
Received WebSocket message from 127.0.0.1: u'{"method":"core.playback.get_time_position","jsonrpc":"2.0","id":31252}'
DEBUG 2015-09-10 15:37:28,533 [12014:HttpServer] mopidy.http.handlers
Received WebSocket message from 127.0.0.1: u'{"method":"core.playback.get_time_position","jsonrpc":"2.0","id":31253}'
TRACE 2015-09-10 15:37:29,268 [12014:MainThread] mopidy.audio.gst
Got buffering message: percent=6%
DEBUG 2015-09-10 15:37:29,533 [12014:HttpServer] mopidy.http.handlers
Received WebSocket message from 127.0.0.1: u'{"method":"core.playback.get_time_position","jsonrpc":"2.0","id":31254}'
TRACE 2015-09-10 15:37:29,737 [12014:MainThread] mopidy.audio.gst
Got buffering message: percent=7%
ãããã¡ã100ïŒ ãŸã§ãã£ã±ãã«ãªããšãåçã¯ç¶è¡ãããŸãã
ç§ããããããã«æçš¿ããçç±ã¯ãmplayerãvlcãªã©ã®å¥ã®ãã¬ãŒã€ãŒã䜿çšããŠãããšãã«ãã®åé¡ãçºçããªãããã§ãã
èšå®ã§ãããã¡æéãšã¬ã€ãã³ã·æéããã§ã«å¢ãããŸããããåé¡ã¯è§£æ±ºããŸããã
[audio]
output = alsasink buffer-time=200000 latency-time=10000
mixer = software
mopidyãããã¡ã®åŠçãå€æŽããä»ã®å¯èœæ§ã¯èŠã€ãããŸããã ãã¶ããgstreamerã®ãããã¡ãµã€ãºãå¢ãããšç§ã®åé¡ã¯è§£æ±ºããã§ãããã
æè¿ã®mopidyãã«ãïŒçŸåšã®1.1.0ã䜿çšããiamïŒã§ããã調æŽããå¯èœæ§ã¯ãããŸããïŒ
ããã§ãªãå Žåã¯ãå°æ¥ã®ããŒãžã§ã³ã§ã¹ããªãŒã ãããã¡ãªã³ã°ã®ããã€ãã®ãªããã³ãŸãã¯æ¹åãèŠããããšäŸ¿å©ã§ãã
çŽ æŽãããä»äºãããããšãããããŸããã
ããªããå©ããããšãã§ããã°éåžžèã ããã
mopidyããŒãžã§ã³1.1.1ã䜿çšããŠåãåé¡ãããããšã確èªã§ããŸãã
ãããããã
alsasink
ã®ãããã¡æéãããã£ãŠããããããããã«ã¯ããŸãå¹æããããŸããã ããããã playbin2
å
ã®ãããã¡ãŒããŸãã¯åºåã«ããqueue
ãå€æŽããå¿
èŠããããŸãã ãããã®ãã¥ãŒèšå®ããã調æŽå¯èœã«ããããã®TODOãã³ãŒãã«ãã§ã«å«ãŸããŠããŸããããã¯ããã®ãããªå Žåã«åœ¹ç«ã€å¯èœæ§ããããŸãã
ãŸããGStreamersã®æšå¥šäºé ã«åŸã£ãŠæ£ããåŠçãããŠããããšã確èªããããã«ããããã¡ãŒåŠçã確èªããããã«å°ãåã«éãããã°ããããŸãã
çŸåšã®ããã16.04ã®ããããã€ã§mopidy2ã䜿çšããŠããã®åé¡ãããããšã確èªã§ããŸãã
Mopidy 2.0.1ã§ãããã¹ãŠã®ç¡ç·ã¹ããªãŒã ã§ãŸã£ããåãåé¡ãçºçããŸãã 誰ããç§ã«èª¬æããŠãããã ãããããã®ãããªå£æ» çãªãã°ãããªããŠãã£ãé³æ¥œãµãŒããŒã§ä¿®æ£ãããªãå¯èœæ§ããããã®ã ãããïŒ
@karlmuugaããã¯å¯ŸåŠãããŠããªããšæããŸããïŒ1ïŒã»ãšãã©ã®ãŠãŒã¶ãŒã¯Mopidyã䜿çšããŠä»ã®HTTPé³æ¥œã¹ããªãŒã ãã¹ããªãŒãã³ã°ããã®ã§ã¯ãªããSpotifyãããŒã«ã«ãã¡ã€ã«ã·ã¹ãã ãªã©ããé³æ¥œãåçããŸãïŒããã§ãªãå Žåã¯ãããå€ãã®ãŠãŒã¶ãŒããã®åé¡ã«èŠããã§ãããïŒ; ïŒ2ïŒåé¡ã¯ãMopidyãçŽæ¥ä¿®æ£ã§ããªããµãŒãããŒãã£ã³ã³ããŒãã³ãã§ããGStreamerã«ããå¯èœæ§ããããŸãã
playbinãšã¹ããªãŒãã³ã°URIã䜿çšããŠgst-launchïŒã³ãã³ãã©ã€ã³GStreamerã¯ã©ã€ã¢ã³ãïŒãå®è¡ãããšãåãåé¡ãçºçããããšã¯ééããããŸããã ãããã£ãŠããããã®ãã©ã¡ãŒã¿ã調æŽããŠãåé¡ã®ããèŠçŽ ã§ããå¯èœæ§ãé«ãsouphttpsrcããã®ããŒã¿ã®ãããã¡ãªã³ã°ã«ã€ããŠããã¹ããŒãã«ã§ãããã©ãããå€æããå¿ èŠããããŸãïŒhttps://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins- good-plugins / html / gst-plugins-good-plugins-souphttpsrc.htmlïŒã åé¡ã¯ãããããã¬ã€ãã³ã®äžã«åãããŠããããšã§ãã
ããã«ã€ããŠå®£èªããç¹å®ã®ãŠãŒã¹ã±ãŒã¹ãããã»ã©åºç¯å²ã«ãã¹ããããŠããªãããšãæ€æ šããŠããããšãè¡šæããŠãã解決çã«è¿ã¥ãããšã¯ã§ããŸããã
@allquixotic ïŒãããšãç§ã¯ã¹ããªãŒãã³ã°ã_æä»çã«_ïŒãã¬ãŒã³ãªM3Uã©ãžãªã¹ããªãŒã ãããããã£ã¹ããinternetarchiveãdleynaïŒäœ¿çšããŠããŸãããæè¿ã®MopidyããŒãžã§ã³ã®å€§ããªåé¡ã«ã¯æ°ã¥ããŠããŸããã ã¹ããªãŒãã³ã°ã®ããã©ãŒãã³ã¹ã¯ãå€éšèŠå ãç¹ã«ãããã¯ãŒã¯æ¥ç¶ã®å質ã«å€§ãã圱é¿ãããŸããããã«ã€ããŠã¯ããããã¡ãªã³ã°èšå®ã埮調æŽããã ãã§æžã¿ãŸãã
äœé»åã®ã¢ãŒã ããŒã以å€ã®ã·ã¹ãã ãã€ãŸããã¹ã¯ããããã·ã³ã§ã誰ãããã®åé¡ãçµéšããŠãããã©ãããç¥ãããšã¯æçšãããããŸããã
@allquixoticgstreamerã«ã€ããŠããªãã絶察ã«ééã£ãŠãããšèšã£ãŠç³ãèš³ãããŸããã Gst-launchã¯ã¹ããªãŒã ãåçãããããEnterãããããæ°ããªç§åŸã«éå§ãããã¹ããªãŒã ã¯äžæçãªäžæãªãã«çµäºããŸãïŒmopidyãšã¯ç°ãªããŸãïŒã ãããã£ãŠãããªããèšã£ãããšãšã¯å察ã«ãgstããçŽæ¥URIãã¹ããªãŒãã³ã°ããŠãããšãã«åãåé¡ã¯çºçããŸããã§ããã
ãããŠãä»ã«ãç§ã¯mopidy-vãã°ãæ·±ãæãäžããŸããã ããããã絶察ã«ã©ã³ãã ãªç¬éã«gstreamerããããã¡ãªã³ã°ãéå§ããããšãããããŸãïŒããã¯éšåçã«æ£åžžã§ãïŒã ãã®åŸã«èµ·ããããšã¯ãã¹ãŠåèšbsã§ãã æ°ããªç§åŸããããã¡ããã£ã±ãã«ãªãïŒASYNCå®äºã¡ãã»ãŒãžãååŸ+ 100ïŒ ãããã¡ãªã³ã°ïŒããã®åŸãåçãåéããããŸã§5ç§ä»¥äžåŸ æ©ããŸãïŒãããŠããã®éãã£ãšãåçäžã®æèšã®æå»ãé²ã¿ãæ²é»ããŸãéšå±ãåããŸãïŒã ããã¯ééããªãããªããããã§è©±ããŠããããšã§ã¯ãããŸããã
@tkemã»ããã¢ãããæ§æãã€ã³ã¿ãŒãããé床ã«ã€ããŠæããŠãã ããïŒç§ã®ãã®ã¯5/5 Mbpsã±ãŒãã«ãã¯ãªãŒã³ãªDebian 7ãããã«ãIntelãã¥ã¢ã«ã³ã¢ã§ãïŒã ç§ã¯ãã§ã«ãããã¡ãªã³ã°èšå®ã埮調æŽããããšããŸããããããã¯äœã«ã圱é¿ããŸããã
@kingosticksç§ã®FujitsuSiemensAmilo laptoã¯ãçå£ã«äœé»åã®ãã·ã³ã§ã¯ãªããšæããŸãã
mopidy / audio / actor.pyãã¡ã€ã«ã«ã³ãŒãè¡ãæ¿å ¥ããåŸãåé¡ã¯ãªããªããŸããã https://discuss.mopidy.com/t/streaming-radio-station-pausing-buffering/1251
set_live(True)
ãããïŒ ãããããã€ãã®å€ãæªè§£æ±ºã®ãã°ã«é¢é£ããŠãããšæããªãã誰ããããããå蚪ãã¹ãã©ã€ãåŠçã«ã€ããŠç§ã¯æã£ãŠããŸãã çæ³çã«ã¯ãã³ã³ãã³ããã©ã€ãã§ãããã©ããããªãŒãã£ãªã«éç¥ããããã®ããã¯ãšã³ããžã®äœããã®æ¹æ³ãèãåºããŸãã#EXTM3U
#EXTINF:0, Classic Rock
http://us2.internet-radio.com:8191
ãã¬ã€ãªã¹ããåçããŸãã
@adamcik調æ»çµæã®åçŸã«æåããŸãããïŒ on_source_setupã次ã®ããã«å®çŸ©ããããšãçºèŠããŸãã
def _on_source_setup(self, element, source):
gst_logger.debug(
'Got source-setup signal: element=%s', source.__class__.__name__)
if source.get_factory().get_name() == 'appsrc':
self._appsrc.configure(source)
else:
self._appsrc.reset()
if source.__class__.__name__ == '__main__.GstSoupHTTPSrc':
gst_logger.debug('HTTP Src - setting live mode')
source.set_live(True)
utils.setup_proxy(source, self._config['proxy'])
ç¡ç·ã®å æãåæ¢ããŸãããã¹ããªãŒã ã®ãã®ããªç§ã®æ°åãŸãã¯2åãã¹ãããããããšããããŸãã ãã ããifã¹ããŒãã¡ã³ããåé€ãããšããã¹ãŠã®ãœãŒã¹ãã¹ããããããŸãã ãããã£ãŠããã®è§£æ±ºçã¯æ£ãããããŸããããæ²é»ãããåªããŠããŸãã
ç§ã¯äœãè©Šãæ©äŒããããŸããã§ããã
is_liveã䜿çšãããœãªã¥ãŒã·ã§ã³ã§ã¯ãéåžžã®httpãœãŒã¹ïŒæéããããœãŒã¹ïŒã§åé¡ãçºçããŸãã ããšãã°ãdlnaïŒmopidy-dleynaïŒã¯ã¹ããªãŒãã³ã°ã«httpã䜿çšããŸãããåé¡ã¯ãåã®æ²ãçµäºããåŸããã¬ãŒã€ãŒã次ã®æ²ã«ã¹ãããããªãããšã§ãã
ãœãŒã¹ãã·ãŒã¯å¯èœã§ãããããœãŒã¹ãã©ã€ãã¹ããªãŒã ã§ã¯ãªããã©ããã瀺ãæéãŸãã¯ãã®ä»ã®ããããã£ãããããšãã_on_source_setupã§ãã§ãã¯ã€ã³ããæ¹æ³ãç¥ã£ãŠãã人ã¯ããŸããïŒ
ããã§ã¡ããã©ç§ã®2ã»ã³ã:-)ç§ã¯åããããã¡ã®åé¡ãçµéšããŠããŸã-æŽæ°ãããã©ãºããªãŒãå®è¡ããŠããã©ãºããªãŒãã€ã§ã®ã¿-ãã¹ãŠãæ£åžžã«ã¹ããªãŒãã³ã°ãããŠããç§ã®éçºè ãã©ãããã©ãŒã ã§ããPCLinuxOSã§ã¯ãããŸããã
ç§ã¯ãã®åé¡ã次ã®2ã€ã®æµãã«èŠçŽããŸããã
ã©ãºããªãŒãã€ã®ãããã¡ã®åé¡ïŒ gst-validate-1.0 playbin uri=http://stream-dc1.radioparadise.com/mp3-128
ïŒ
åäœã®ãããã¡æ
å ±ã0ïŒ
ããæ°ããŒã»ã³ãã®éã§ç¹æ»
ããŠãããã¹ããªãŒã ãéå§ãããªã
ãããã°æ
å ±ä»ãïŒ GST_DEBUG=*:5 gst-validate-1.0 playbin uri=http://stream-uk1.radioparadise.com/mp3-192
ã©ãºããªãŒãã€ã§éã¶ïŒ gst-validate-1.0 playbin uri=http://streams.80s80s.de/love/mp3-192/radiosure/
ç§ã¯Python2.7gstreamer 1.0 Webã©ãžãªã§ã³ãŒãã£ã³ã°ããŠããŸãããpiãããå°æ°ã®ã©ãžãªå±ããåçããŠããªãç¶æ ã§ç«ã¡åŸçããŠããŸãã
Orange Pi PC PlusãMopidyããŒãžã§ã³ïŒ2.1.0-1ã§åãããã«ãããã®åé¡ãçºçããŸã
source.set_liveïŒTrueïŒã䜿çšãããœãªã¥ãŒã·ã§ã³ã¯ããã°ããã®é圹ã«ç«ã¡ãŸãã...ãã¬ãŒã€ãŒãGoogleãã¥ãŒãžãã¯ã®æ¬ã®æ¬¡ã®ç« ã«ã¹ãããããŠããªãããšãããããŸã§ïŒGstSoupHTTPSrcãšããŠãã¹ããªãŒãã³ã°ãããŸãïŒ
äœãã¢ããã€ã¹ïŒ
ã©ãã
ããã«ããçŸåšã®ãdebian jessieãgstreamer 1ãmopidy 2ãããã³alsaããããµãŒãšããŠå®è¡ããŠããé©åãªhaswellããŒã¹ã®ãã¹ã¯ãããã³ã³ãã¥ãŒã¿ãŒã§ãã®åé¡ã確èªããããšãã§ããŸãã
Mopidyã¯åºæ¬çã«ãçŸåšã®ç¶æ
ã®ã©ãžãªå±ãèŽãããã«ã¯äœ¿çšã§ããŸããã mopidy-youtubeãmopidy-spotifyãããŒã«ã«ãã¡ã€ã«ã¹ãã¢ããã®åçã¯äœæéã§ãåé¡ãªãåäœããŸãã
ããã«å©çšã§ããåé¿çãŸãã¯ãã°ä¿®æ£ã¯ãããŸããïŒ
ãã®ãããã¡ãªã³ã°ã®åé¡ã«é¢é£ãããã°ãšã³ããªã¯ãããŸããã
ç§ã¯èªåã®è§£æ±ºçãæäŸã§ããŸããããã¯2.1.0ããŒãžã§ã³ã«å¯Ÿãããããã§ãã
diff --git a/mopidy/audio/actor.py b/mopidy/audio/actor.py
index 6020bc1..6020d2f 100644
--- a/mopidy/audio/actor.py
+++ b/mopidy/audio/actor.py
@@ -415,6 +415,7 @@ class Audio(pykka.ThreadingActor):
self._buffering = False
self._tags = {}
self._pending_uri = None
+ self._is_live = False
self._pending_tags = None
self._pending_metadata = None
@@ -547,9 +548,12 @@ class Audio(pykka.ThreadingActor):
else:
self._appsrc.reset()
+ if source.get_factory().get_name() == 'souphttpsrc':
+ source.set_property('is-live', self._is_live)
+
utils.setup_proxy(source, self._config['proxy'])
- def set_uri(self, uri):
+ def set_uri(self, uri, is_live):
"""
Set URI of audio to be played.
@@ -558,7 +562,7 @@ class Audio(pykka.ThreadingActor):
:param uri: the URI to play
:type uri: string
"""
-
+ self._is_live = is_live
# XXX: Hack to workaround issue on Mac OS X where volume level
# does not persist between track changes. mopidy/mopidy#886
if self.mixer is not None:
diff --git a/mopidy/backend.py b/mopidy/backend.py
index 7412ccc..f15b616 100644
--- a/mopidy/backend.py
+++ b/mopidy/backend.py
@@ -248,7 +248,7 @@ class PlaybackProvider(object):
'Backend translated URI from %s to %s', track.uri, uri)
if not uri:
return False
- self.audio.set_uri(uri).get()
+ self.audio.set_uri(uri, track.length is None).get()
return True
def resume(self):
@mczerskiã¯ãããã«å¯Ÿãããã«ãªã¯ãšã¹ããäœæããŠããã®åé¡ã«ãªã³ã¯ã§ããŸããïŒ ããããšãïŒ
ãŸãã¯UAudioDecorder_FFmpegè¡1020ã§ãLIBAVCODEC_VERSIONã57ã§ã¯ãªã60ã®ãããªãã®ã«èšå®ããffmpeg2.8ã§åè©Šè¡ããŸã
æ®å¿µãªãããææ¡ãããä¿®æ£ã¯åãªãåé¿çã§ãã ãã¹ãŠã®httpã¹ããªãŒã ãã©ã€ãã§ããå¿
èŠãããããšãããŒãã³ãŒãã£ã³ã°ããããšã¯ã§ããŸãããããã¯ãåã«ããã§ã¯ãªãããã§ãã çºçããå¿
èŠãããã®ã¯ã mopidy.audio
ã«ã¯ããœãŒã¹ãã©ã€ãã§ããããšãããã¯ãšã³ããéç¥ããããã®æ°ããæ¹æ³ãå¿
èŠãªããšã§ãã 次ã«ãã©ã€ãã¹ããªãŒã ãæã£ãŠããå¯èœæ§ãé«ãã¹ããªãŒã ããã¯ãšã³ãããã³ãã®ä»ã®ããã¯ãšã³ãã¯ãåçããã¯ãšã³ãã§ãããåŒã³åºãããšãã§ããŸãã
ããã人ã
ã«ãšã£ãŠããç°¡åã«ããããã«ãããããã®ãããªããã¯ãšã³ãã«åå©çšã§ããBaseStreamingBackend
ã«ã«ãã»ã«åãããŠãããšããã§ãããã
@adamcikç§ã®ãœãªã¥ãŒã·ã§ã³ã¯ããã¹ãŠã®httpã¹ããªãŒã ãã©ã€ãã§ãããšã¯æ³å®ããŠããŸããã ã©ã€ãã¹ããªãŒã ãšéã©ã€ãã¹ããªãŒã ãåºå¥ããããã«ãtrack.lengthãNoneã§ãããã©ããã確èªããŸãã track.lengthã¯ãmopidy.audio.scanã䜿çšããStreamLibraryProvider.lookupã¡ãœããã«ãã£ãŠmopidy.stream.actorã«èšå®ãããŸãã å©çšå¯èœãªå±æ§ãseekableãããããŸãããStreamLibraryProvider.lookupã«ç Žæ£ãããŸãã é·ãããªããã·ãŒã¯ã§ããªããã©ãã¯ã¯ãã©ã€ãã¹ããªãŒã ãšããŠæ±ãããšãã§ãããšæããŸãã
@basisbitåž°å® ããããã«ãªã¯ãšã¹ããããŸãã
@mczerskiã¯ç§ã«ãšã£ãŠæ©æã«å°ãç³ãèš³ãããŸããã§ãããããã§å°ãéãã¹ããã³ã°ããŸããã set_uri
ãå€æŽããŠãã¹ã€ã³ãã©ã€ãã«ãªã£ãŠããããã§ãã ããã«é¢ãã2ã€ã®ææ¡ïŒ
is-live
ãååšããŸããïŒset_uri(uri, is_live=False)
ã«ããŸãïŒãŸãã¯ããããlive=False
ã§ãããããã¯ãã£ãšèªè»¢è»å°å±ã§ãïŒã set_uri
ã®APIãå£ããããããŸããã ãããŠããããç Žãå¿
èŠãããå Žåã¯ãã¡ãžã£ãŒãªãªãŒã¹ã§ããç Žãããšãã§ãããæŽæ°ãå¿
èŠãªããã¯ãšã³ãããããããããŸãããŸãããããset_uri
ã«æ»ãã®ã§ã¯ãªããå¥ã®æ¹æ³ã䜿çšããããšãã§ããŸãã ç§ã¯ãã®ãããªéžæã®è³åŠäž¡è«ãèããŠããŸãããã
@adamcikã¢ããã€ã¹ããããšãããããŸãã ç§ã¯ã¢ããã£ã³ãŒãã«ç²ŸéããŠããããç§ã®ä¿®æ£ã¯ãã ã®éãä¿®æ£ã§ãã:)ç§ã®ä¿®æ£ã®èåŸã«ããèãã«åæãããªããç§ãããã®ããã®æéãèŠã€ããã°ãç§ã¯æ¬çªãœãªã¥ãŒã·ã§ã³ãæžãããšãããããããŸããã
ä»ã®ãã¬ã€ã€ãŒïŒãŠãŒã¶ãŒã®ã³ã¡ã³ãã«ãããšãããã¯æããã«ãããæ£ããç解ããŠããïŒããããã©ã®ããã«åŠçããã®ãçåã«æã£ãŠããŸãã ãã¹ãŠã®ãããã¯ãŒã¯ãœãŒã¹ããã©ã€ããã¹ããªãŒã ãšããŠæ±ããŸããïŒ ãŸãã¯ã stream
ããã¯ãšã³ãã«ç§»æ€ããŠãæ¡åŒµæ©èœããã®åºå¥ã«æ°ä»ããªããŸãŸã«ããå¯èœæ§ã®ããéââæ³ãå«ãŸããŠããŸããïŒ
@tkemãããè¡ãRhythmboxã§äœããèŠã€ããããšãã§ããŸããã§ããããèŠã€ããŸããïŒ https ://github.com/GNOME/totem/blob/80709b95f16258c68d47a0a8587c41f93d291e54/src/backend/bacon-video-widget.c#L2570ïŒããã¯ããã§ã®å€æŽãšããŠææ¡ãããã®ïŒ
ç·šéïŒãããŠããã¯https://github.com/xfce-mirror/parole/blob/1a952fe9b632969f5ecbdc4f783ae285959c435c/src/misc/parole-stream.c#L169
ãããgstreamerã®ããã¥ã¡ã³ãã§ããæ確ã«ãªã£ãŠããªãçç±ãããããŸããã
@kingosticks ïŒãããïŒ
ããã§ã @ mczerskiã®ææ¡ã«åºã¥ãåæ§ã®ãåé¿çããçæçã«Mopidyã«ãªãå¯èœæ§ã¯ãããŸããïŒ ã¹ããªãŒã ãã©ã€ãã§ãããã©ãããæ瀺çã«æå®ããããã¯ãšã³ãã®ã¢ã€ãã¢ã¯å¥œãã§ãããããã¯ããã«ã¯èµ·ãããªããšæããŸã...
ããã®æ¬ ç¹ã¯ããããŸãããããã©ã«ãå€ã䜿çšããŠset_uri
ã§åŠçãããšã次ã®ãã€ããŒãªãªãŒã¹ã§ããã䜿çšã§ããŸãã @adamcikã®2ã€ã®ã³ã¡ã³ãã念é ã«çœ®ããŠãPR @mczerskiãéä¿¡ããŸããïŒ å€±æããŸãã
@kingosticksããªããããããŠãããŸããŸããã ãã®æéã¯ãããŸããã
æ®å¿µãªãããç§ã®è§£æ±ºçã¯å®å
šã«ã¯è¯ããããŸãã...åé¡ã¯backend.pyã®ãã®ã³ãŒãè¡ïŒ251è¡ç®ïŒã«ãããŸãïŒ
self.audio.set_uriïŒuriãtrack.lengthã¯NoneïŒ.getïŒïŒ
ãã©ãã¯ãã©ã€ãã¹ããªãŒã ã§ã¯ãªãã«ãããããããtrack.lengthãNoneã«ãªãå ŽåããããŸãïŒ/ããã¯spotifyããã³youtubeãã©ãã¯ã§çºçããŸããã ãã®åäœã¯ã©ã³ãã ã§ãããtrack.lengthãNoneã§ããå ŽåãšãNoneã§ã¯ãªãå ŽåããããŸãã Web GUIã§ã¯ããã©ãã¯ã«ã¯åžžã«ãã®é·ãã衚瀺ãããŸãã
gstreamerãŸãã¯mopidyã³ãŒããé·ãã0ã§ãããšèããæ²ã®å€æŽã®æ¬ ç¹ã¯äœã§ããããïŒ ïŒãã©ãã¯å ã«ãžã£ã³ãã§ããªããã®ãé€ããŠïŒèª°ããéæ³ã®ããã«è¯ã解決çãã³ãããããŠãã ãã... XD
äžæåæ¢ãããšãäžæåæ¢ãã代ããã«ããŒã¿ãç Žæ£ãããŸãã ãããã£ãŠã set_uri(uri, live=False)
ïŒãŸãã¯set_live(live)
ïŒã®ãããªãã®ã䜿çšããããšã¯ãããããŸã å¯èœã§ããããã¯ãšã³ãããããtrueã«èšå®ãããããã©ãã¯ã®é·ãã«åºã¥ããŠèšå®ãããã«ã€ããŠè³¢ãããå¿
èŠããããŸãã
é·ãããŒãã«ãªãããšããããŸãããããã¯ããŒã¿ã®ç«¶äºãããããŸããããããããããŸããã
@basisbitã®æ倧ã®æ¬ ç¹ã¯ãis-liveå±æ§ãtrueã«èšå®ãããŠãããã©ãã¯ãçµäºããªããããåŸã§ãã¬ã€ãªã¹ãã«ä»ã®ãã©ãã¯ãããå ŽåãçŸåšåçãããŠãããã©ãã¯ãæåã§ã¹ãããããªãéãããããã¯åçãããªãããšã§ãã æ£ãã解決çã¯æ¬¡ã®ããã«èšå®ããããšã ãšæããŸã-ãã©ãã¯ã®é·ããæ£ããèšå®ãããããšãä¿èšŒãããŠããã³ãŒãã®å¥ã®å Žæã«äœãã§ããŸãããç§ã¯ã¢ããã£ã³ãŒãã®ç¥èãã»ãšãã©ãªããçŸåšãããåŠã¶æéããªãã®ã§ãæ£ãã解決çãèŠã€ãããŸãã:(
ããã«ã¡ã¯ãã¿ããªã
ã©ãžãªãŠã§ãã¹ããªãŒã ã®åçã§ãåãåé¡ãçºçããŠããŸãã ãããæçµçã«ææ°ã®mopidyãªãªãŒã¹ã§ä¿®æ£ããããã©ããçåã«æããŸãããïŒ
ããããšã
ããã
ãã®åé¡ãçºçããŠããŸãããäžèšã®ä¿®æ£ãæ©èœããŠããŸããã
æãåèã«ãªãã³ã¡ã³ã
Mopidy 2.0.1ã§ãããã¹ãŠã®ç¡ç·ã¹ããªãŒã ã§ãŸã£ããåãåé¡ãçºçããŸãã 誰ããç§ã«èª¬æããŠãããã ãããããã®ãããªå£æ» çãªãã°ãããªããŠãã£ãé³æ¥œãµãŒããŒã§ä¿®æ£ãããªãå¯èœæ§ããããã®ã ãããïŒ