def play(self):
        """播放"""
        if len(self.current_playlist) == 0:
            # 初始化和之前各种行为_get_playlist 都没获取到歌曲才会进到这里
            if self.timeout > 0:
                self.next_song()
                self.timeout -= 1
            else:
                print 'timeout on loading playlist, exit'
                sys.exit(1)
            return 
        self.player.set_state(gst.STATE_PLAYING)
        current_song = self.current_song
        i_title = current_song.get('title')
        i_artist = current_song.get('artist')
        i_album = current_song.get('album')
        i_albumtitle = current_song.get('albumtitle')
        i_islike = int(current_song.get('like')) == 1
        i_url = 'http://{0}/?start={1}g{2}g{3}&cid={3}'.format(self.douban_fm_host,
                    current_song.get('sid'), 
                    current_song.get('ssid'), 
                    self.current_channel)
        i_cover_path = "/%s/cover.%s.jpg" % (self.tmp_dir,current_song.get('sid'))
        urllib.urlretrieve(current_song.get('picture'),i_cover_path)

        playing_info = '▶  %s - %s %s [%s](%s)' % (i_artist, i_title, '❤ '  if i_islike else '',i_albumtitle, i_url)
        terminal_title = "\x1b]2;▶  %s - %s\x07" % (i_artist,i_title)
        sns_info = '♪ 豆瓣FM#%s# %s - %s %s' % (self.douban_fm_channel_name.get(self.current_channel, 'DJ兆赫') ,
                i_artist, i_title, i_url)
        print playing_info
        print terminal_title
        notify(i_artist, i_title, i_cover_path)
        set_skype_status(sns_info)


if __name__ == '__main__':
    argv = sys.argv
    url = None
    if len(argv) >= 2:
        url = argv[1]
    fm = DoubanFM(debug=False, url=url)
    hint = 'Command: Q[uit]\tn[ext]\tb[an]\tr[ed]\t[u]nred\tp[ause]\tP[lay]\th[elp]'
    print '😻  豆瓣FM'
    fm.play()
    while True:
        c = getch()
        if c == 'Q':
            set_skype_status('')
            break
        elif c == 'n':
            fm.pass_song()
        elif c == 'b':
            fm.ban_song()
        elif c == 'r':
            fm.red_song()
        elif c == 'u':
            fm.unred_song()
        elif c == 'p':
            fm.pause()
        elif c == 'P':
            fm.play()
        elif c == 'h':
            print hint