使用python将歌词嵌入歌曲中

以前一直用的是Google Play Music来作为手机的音乐播放器,可是现在谷歌被墙的这么厉害的,从PC上传到Google Play的音乐在手机上面同步下来的话特麻烦,索性放弃之买了大名鼎鼎的Poweramp播放器,开始使用之后瞬间就被Poweramp强大的功能所吸引住了,不愧是安卓端的音乐播放器的王者!唯美的锁屏界面,强大的均衡器功能等等。唯一美中不足的就是歌词.如果要显示歌词的话必须安装第三方软件,或者是把歌词嵌入到音乐中。所以昨天下班之后就开始研究,所幸最后终于搞定了,先上下效果图可以看到,效果还是很不错的呢。好了,废话不多说,下面上程序首先,必须安装eyed3模块,还有,我所有的歌词都在E:\lrc这个路径中的,大家可以参考使用python扫描本地音乐并下载歌词?来先把歌词下载到本地。

import threadingimport timeimport datetimeimport reimport osimport eyed3import sysreload(sys)sys.setdefaultencoding('utf8')def getstr(i):    if i 0:            return deallrc(line)        else:            continue    return ''def getlrcstr(lrc):    mylrcstr=''    #print lrc    for i in range(00,05):        for j in range(00,59):            for k in range(00,99):                timespan=getstr(i)+":"+getstr(j)+"."+getstr(k)                mylrcstr+=checklrcfile(lrc, timespan)             #print timespan    return mylrcstrdef getlrc(musicname):    musicname=u''.join(musicname)    musicname=musicname.encode('gb2312')    for root,dirs,files in os.walk(lrcpath):        for filepath in files:            the_path = os.path.join(root,filepath)            if (the_path.find(musicname) != -1):                print the_path                return the_pathdef errorlog(path):    file=open(r'e:\nolrc.txt','a')    if path is None:        path=''    path=path+'\n'    file.write(path)    file.close()def writetag(themusic,lrcstr):    music=eyed3.load(themusic)    lrcstr=lrcstr.decode('utf8')    lrcstr=u''.join(lrcstr)    #lrcstr=unicode(lrcstr)    music.tag.lyrics.set(lrcstr)    music.tag.save()def dealmusic(path):    print path    the_music = eyed3.load(path)    the_teg = the_music.tag._getAlbum()    the_artist = the_music.tag._getArtist()    the_title = the_music.tag._getTitle()    #print the_title    try:        lrc=getlrc(the_title)        lrcstr=getlrcstr(lrc)        writetag(path, lrcstr)      except:        errorlog(path)class writelrc(threading.Thread):    def __init__(self,the_path):        threading.Thread.__init__(self)        self.thepath=the_path    def run(self):        dealmusic(self.thepath)if __name__=='__main__':    count=0    threads=[]    for root,dirs,files in os.walk(musicpath):            for filepath in files:                the_path = os.path.join(root,filepath)                if (the_path.find("mp3") != -1):                    count+=1                    threads.append(writelrc(the_path))                    if count%10==0:                        for t in threads:                            t.start()                        for t in threads:                            t.join()                        threads=[]            

好了,大概就是这样,大家有什么问题可以直接提出来,我会尽快回复的。

转载请注明:逝去日子的博客 » 使用python将歌词嵌入歌曲中

别人失去了信心,他却下决心实现自己的目标。

使用python将歌词嵌入歌曲中

相关文章:

你感兴趣的文章:

标签云: