mplayer.py 文件源码

python
阅读 26 收藏 0 点赞 0 评论 0

项目:barbieri-playground 作者: barbieri 项目源码 文件源码
def _register_io_handlers(self):
        flags_err = gobject.IO_ERR | gobject.IO_HUP
        def handler(fd, flags):
            if flags & flags_err:
                return False
            else:
                while self.playing:
                    line = self._readline()

                    if not line:
                        return True
                    elif line[:2] == "A:" and line[-1] =="\r":
                        pieces = line.split()
                        pos = float(pieces[1])
                        self.emit("pos", pos)
                        return True
                    elif line == "Exiting... (Quit)\n":
                        self.proc.wait()
                        self.proc = None
                        self.emit("eos")
                        self.emit("state-changed", PlayerEngine.STATE_NONE)
                        return False
                    elif line == "Starting playback...\n":
                        # make buffer empty
                        while line:
                            line = self._readline(100)
                            if line and line[:2] == "A:" and line[-1] == "\r":
                                break

                        self.set_volume(self.volume)
                        self.set_mute(self.mute)
                        self.set_fullscreen(self.fullscreen)
                        self._query_media_info()
                        self._register_state_timeout()
                        self.emit("state-changed", PlayerEngine.STATE_PLAYING)
                        return True
                    else:
                        self.log.debug("Ignored MPlayer output: %r" % line)

                return True

        flags = gobject.IO_IN | gobject.IO_PRI | flags_err
        self.out_watcher = gobject.io_add_watch(self.proc.stdout,
                                                flags, handler)
    # _register_io_handlers()
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号