sound = pygame.mixer.Sound('your_sound_file.wav') ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ FileNotFoundError: No file 'your_sound_file.wav' found in working directory 'C:\Users\ASUS\PycharmProjects\pythonProject2\venv'.
时间: 2023-08-02 11:06:54 浏览: 38
这个错误原因是因为Pygame无法找到指定的音频文件。请确保指定的路径和文件名是正确的,并且在当前的工作目录下。
你可以使用绝对路径或相对路径来加载音频文件。如果使用相对路径,请确保它相对于当前工作目录而不是脚本文件的位置。
下面是一个使用相对路径加载音频文件的示例代码片段:
```
import pygame
import pygame.sndarray
import os
pygame.init()
pygame.mixer.init()
# 获取当前脚本文件的绝对路径
script_dir = os.path.dirname(__file__)
# 拼接相对路径
sound_file = os.path.join(script_dir, 'your_sound_file.wav')
sound = pygame.mixer.Sound(sound_file)
waveform = pygame.sndarray.array(sound)
```
这样就可以加载音频文件并获取波形数据了。
相关问题
progress_bar = tk.Scale(root, from_=0, to=pygame.mixer.music.get_length() // 1000, orient=tk.HORIZONTAL, length=300) AttributeError: module 'pygame.mixer_music' has no attribute 'get_length'
这个错误是因为 `pygame.mixer_music` 模块没有 `get_length` 属性。你可以使用 `pygame.mixer.Sound` 类来获取音乐文件的长度。你可以尝试使用以下代码替换原有的代码:
```python
import pygame.mixer
pygame.mixer.init()
pygame.mixer.music.load("your_music_file.mp3")
# 获取音乐文件长度
sound = pygame.mixer.Sound("your_music_file.mp3")
length_in_milliseconds = sound.get_length() * 1000
# 创建进度条
progress_bar = tk.Scale(root, from_=0, to=length_in_milliseconds // 1000, orient=tk.HORIZONTAL, length=300)
```
这个代码中,我们使用 `pygame.mixer.Sound` 类来获取音乐文件的长度,并将其存储在 `length_in_milliseconds` 变量中。然后,我们使用 `length_in_milliseconds` 来设置进度条的最大值。
waveform = pygame.sndarray.array(pygame.mixer.music.get_wave()) ^^^^^^^^^^^^^^^^^^^^^^^^^^^ AttributeError: module 'pygame.mixer_music' has no attribute 'get_wave'
这个错误的原因是因为在pygame.mixer_music模块中,确实没有get_wave()方法。正确的方法是使用pygame.mixer.Sound对象来获取音频文件的波形数据。你需要先使用pygame.mixer.Sound加载音频文件,然后使用sndarray.array()方法来获取波形数据。下面是一个示例代码片段:
```
import pygame
import pygame.sndarray
pygame.init()
pygame.mixer.init()
sound = pygame.mixer.Sound('your_sound_file.wav')
waveform = pygame.sndarray.array(sound)
```
这样就可以获取音频文件的波形数据了。