查找mp3文件的时长
我有一段代码:
import glob,os
import random
path = 'C:\\Music\\'
aw=[]
for infile in glob.glob( os.path.join(path,'*.mp3') ):
libr = infile.split('Downloaded',1)
aw.append(infile)
aww = -1
while 1:
aww += 1
print len(aw),aww
random.shuffle(aw)
awww = aw[aww]
os.startfile(awww)
但是它的功能只是不断播放所有的歌曲,没有停下来。我想,如果我能找到当前正在播放的歌曲的长度,就可以用“time”模块的(sleep)属性在歌曲结束后继续播放。然而,我找不到在Windows上如何获取歌曲长度的方法。有没有人知道怎么解决我的问题?
5 个回答
11
新版本的 python-ffmpeg
提供了一个封装函数,可以用来调用 ffprobe
。获取视频时长的示例代码如下:
import ffmpeg
print(ffmpeg.probe('in.mp4')['format']['duration'])
可以在这里找到更多信息: https://github.com/kkroening/ffmpeg-python/issues/57#issuecomment-361039924
14
你可以使用FFMPEG这个库:
args=("ffprobe","-show_entries", "format=duration","-i",filename)
popen = subprocess.Popen(args, stdout = subprocess.PIPE)
popen.wait()
output = popen.stdout.read()
然后输出结果将会是:
[FORMAT]
duration=228.200515
[/FORMAT]