def play()

in tts/tts/scripts/voicer.py [0:0]


    def play(self, filename):
        self.logger.info('using gstreamer to play the audio')

        playbin = Gst.ElementFactory.make('playbin', 'player')

        bus = playbin.get_bus()

        playbin.props.uri = 'file://' + os.path.abspath(filename)
        time.sleep(0.5)  # sometimes gst needs time to get ready for unknown reasons
        set_result = playbin.set_state(Gst.State.PLAYING)
        if set_result != Gst.StateChangeReturn.ASYNC:
            raise RuntimeError("gstreamer error: playbin.set_state returned " + repr(set_result))

        bus.poll(Gst.MessageType.EOS, Gst.CLOCK_TIME_NONE)
        playbin.set_state(Gst.State.NULL)