以前一直用的是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将歌词嵌入歌曲中
别人失去了信心,他却下决心实现自己的目标。