diff --git a/mopidy/outputs/gstreamer.py b/mopidy/outputs/gstreamer.py index a28329f7..5e64378f 100644 --- a/mopidy/outputs/gstreamer.py +++ b/mopidy/outputs/gstreamer.py @@ -159,10 +159,10 @@ class GStreamerProcess(BaseProcess): :type state_name: string :rtype: :class:`True` or :class:`False` """ - # XXX Setting state to PLAYING often returns False even if it works - result = self.gst_pipeline.set_state( - getattr(gst, 'STATE_' + state_name)) - if result == gst.STATE_CHANGE_SUCCESS: + state = getattr(gst, 'STATE_' + state_name) + self.gst_pipeline.set_state(state) + new_state = self.gst_pipeline.get_state()[1] + if new_state == state: logger.debug('Setting GStreamer state to %s: OK', state_name) return True else: