[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[问题求助] 想做一个基于python的音乐播放器

现在已经能够播放音乐了,lrc解析的模块也完成了。
现在问题如何整合起来。

我想开2个线程,一个线程解码音频文件,另一个解析
lrc歌词并在屏幕输出。
这样做,会不会造成音乐和歌词对不上的情况?

回复 1# netdzb


    能把那两个模块发来看看嘛~有点好奇

TOP

回复 2# wujunkai

#!/usr/bin/python
# -*- coding: UTF-8 -*-

import os
import time

dictLrc = {}   

def lrcTime(lrc):
    dictLrc = lrc      
    listLrc = sorted(dictLrc)  
    timeLen = len(listLrc)
    timeFree = 0
    count = 0
    for i in listLrc:  
        timeFree = i -count  
        time.sleep(timeFree)
        print(dictLrc)
        count = i   

def revertTime(time):
    time1 = time
    timeList = time1.split(":")
    return  round(float(timeList[0]) * 60 + float(timeList[1]),2)

def getLrc():
    rf = open("lrc.txt","r")
    getlrc = rf.read()
    rf.close()
    return getlrc  

def splitStr(getstr):
    global  dictLrc   
    getStr = getstr
    count = 0  
    for i in getStr:   
        if i =="[":
            count +=1

    getStr = getStr.replace("][","*")
    getStr = getStr.replace("[","*")
    getStr = getStr.replace("]","*")
    lineLrc = getStr.split("*")
    for i in range(1,count+1):
        LrcTimes = revertTime(lineLrc)
        dictLrc[LrcTimes] = lineLrc[-1]

def printLrc(lrc):
    lrc1 = lrc
    for i in lrc1:   
        splitStr(i)  

lrc = getLrc()      
listLrc = lrc.split('\n')   
printLrc(listLrc)
lrcTime(dictLrc)

TOP

回复 2# wujunkai

#!usr/bin/env python
#coding=utf-8

import pyaudio
import wave

#define stream chunk
chunk = 1024

#open a wav format music
f = wave.open(r"1.wav","rb")
#instantiate PyAudio
p = pyaudio.PyAudio()
#open stream
stream = p.open(format = p.get_format_from_width(f.getsampwidth()),
                                channels = f.getnchannels(),
                                rate = f.getframerate(),
                                output = True)
#read data
data = f.readframes(chunk)

#paly stream
while data != '':
        stream.write(data)
        data = f.readframes(chunk)

#stop stream
stream.stop_stream()
stream.close()

#close PyAudio
p.terminate()

TOP

返回列表