import moviepy.editor as mp
import os
from tkinter import Tk,Button,messagebox
from tkinter.filedialog import askdirectory
from tkinter.ttk import Progressbar
def extract_audio():
pb['value']=0
num=0
video_folder=askdirectory()
video_paths=os.listdir(video_folder)
if video_paths:
for x in video_paths:
if x.endswith(".mp4"):
num+=1
for i in video_paths:
if i.endswith(".mp4"):
pb['value']+=int(100/num)
root.update()
video_path=video_folder+"/"+i
video_name=os.path.splitext(i)[0]
audio_path=video_folder+"/"+video_name
#视频读取到my_clip
my_clip=mp.VideoFileClip(video_path)
my_clip.audio.write_audiofile(f'{audio_path}.mp3')
messagebox.showinfo("提示","提取完成")
else:
messagebox.showinfo("提示","文件夹为空")
if __name__=='__main__':
root=Tk()
root.resizable(False,False)
root.title('提取音频')
sw=root.winfo_screenwidth()
sh=root.winfo_screenheight()
ww=230
wh=90
x=(sw-ww)/2
y=(sh-wh)/2
root.geometry("%dx%d+%d+%d"%(ww,wh,x,y))
pb=Progressbar(root,length=210)
pb.grid(row=0,column=0,padx=10,pady=10)
pb['maximum']=100
bt=Button(root,text='选择视频所在的文件夹',command=extract_audio)
bt.grid(row=1,column=0,padx=10,pady=5)
root.mainloop()