You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

pygame调用mixer播放音频报TypeError类型错误

错误原因

这个类型报错是mixer.music.play()方法参数传错导致的:

  • 你已经提前调用mixer.music.load('walk the dinosaur.mp3')把音频文件加载到内存了,play()方法不需要再接收音频路径作为参数
  • play()的第一个位置参数是循环次数,必须传整数:默认值0代表播放1次,传正整数n代表额外重复n次(总共播n+1次),传-1代表无限循环播放。你把字符串格式的文件名传给这个要求整数的参数,就触发了报错。

另外你的代码里还有几处冗余无效内容:未使用的pyflakes导入、无意义的单独input语句、定义了没调用的wtd变量,都可以直接删除。还有原代码没有主事件循环,调用play后程序会立刻退出,根本听不到音频播放。

修复方法

删掉play方法里传入的文件名参数,根据你的播放需求传入正确的循环次数即可,同时补上pygame主循环保证程序不提前退出。
修复后可正常运行的代码:

import pygame
from pygame import mixer

pygame.init()
mixer.init()

# 加载音频文件
audio_path = 'walk the dinosaur.mp3'
mixer.music.load(audio_path)
print("music started playing....")

# 设置音量
mixer.music.set_volume(0.2)

# 播放音乐:传0代表播1次,传-1代表无限循环
mixer.music.play()

# 主循环,保持程序运行
running = True
while running:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running = False
pygame.quit()

如果需要从音频指定位置开始播放,可以给play传第二个浮点类型参数,代表从第几秒开始播放,比如mixer.music.play(0, 5)代表从第5秒开始播放1次。

内容的提问来源于stack exchange,提问作者Tristan Moran

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.27 02:15:26