Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/362.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Pygame-播放youtube dl下载的mp3文件不起作用_Python_Python 3.x_Pygame_Youtube Dl - Fatal编程技术网

Python Pygame-播放youtube dl下载的mp3文件不起作用

Python Pygame-播放youtube dl下载的mp3文件不起作用,python,python-3.x,pygame,youtube-dl,Python,Python 3.x,Pygame,Youtube Dl,您好,我正在尝试通过youtube dl下载mp3文件,然后使用PyGame在我的机器上播放。但是,所有下载的mp3文件都不起作用。奇怪的是,如果我自己通过从互联网手动下载并放入文件夹来导入它们,那么就没有问题了。有没有人经历过这样的事情?问题的原因可能是什么 def playMusic(): ydl_opts = { 'outtmpl': '%(id)s' + '.mp3', 'format': 'bestaudio/best', 'au

您好,我正在尝试通过youtube dl下载mp3文件,然后使用PyGame在我的机器上播放。但是,所有下载的mp3文件都不起作用。奇怪的是,如果我自己通过从互联网手动下载并放入文件夹来导入它们,那么就没有问题了。有没有人经历过这样的事情?问题的原因可能是什么

def playMusic():
    ydl_opts = {
        'outtmpl': '%(id)s' + '.mp3',
        'format': 'bestaudio/best',
        'audioformat': 'mp3'
    }
    with youtube_dl.YoutubeDL(ydl_opts) as ydl:
        ydl.download(['https://www.youtube.com/watch?v=TKTg3Wg1keg'])
    startPlayer()

def startPlayer():
    pygame.init()
    pygame.mixer.init()
    pygame.mixer.music.load('TKTg3Wg1keg.mp3')
    pygame.mixer.music.play()
    while pygame.mixer.music.get_busy():
        pygame.time.Clock().tick(10)

playMusic()

youtube dl没有
audioformat
键。要下载mp3,请设置后处理器。改编自:


请注意,YouTube目前并不提供MP3本机服务,因此总是需要一些重新编码。跳过对mp3的录制并直接播放下载的m4a文件可能会更快。

您确定使用
ydl时创建了正确的文件名。下载
的mp3文件也与.py文件位于同一文件中,否则您应该提供该文件的路径。是的,我确信这一点。如果是这样的话,pygame会抛出一个错误,说它找不到文件,而且它没有这样做。哦,天哪,非常感谢!我之前也看到并尝试过这个答案,但我没有使用%(ext)s作为音频扩展,而是手动将.mp3添加到id中,这显然是一个问题
ydl_opts = {
    'format': 'bestaudio/best',
    'outtmpl': '%(id)s.%(ext)s',
    'postprocessors': [{
        'key': 'FFmpegExtractAudio',
        'preferredcodec': 'mp3',
        'preferredquality': '192',
    }],
}
with youtube_dl.YoutubeDL(ydl_opts) as ydl:
    ydl.download(['http://www.youtube.com/watch?v=TKTg3Wg1keg'])