Python 如何解决';设置_pos()';pygame中的编解码器错误不受支持?

Python 如何解决';设置_pos()';pygame中的编解码器错误不受支持?,python,tkinter,pygame,Python,Tkinter,Pygame,我做了一个项目,我需要在python脚本中使用“set_pos()”函数,但它在编解码器中给出了一个不受支持的错误 这是我的密码: #code fast_forward_icon= tk.PhotoImage(file=__file__+ '/../images/JPEG, PNG/icons/fast_forward.png') def fast_forward(event=None): def func(): global progressbar_music

我做了一个项目,我需要在python脚本中使用“set_pos()”函数,但它在编解码器中给出了一个不受支持的错误

这是我的密码:

#code 

fast_forward_icon= tk.PhotoImage(file=__file__+ '/../images/JPEG, PNG/icons/fast_forward.png')
def fast_forward(event=None):
    def func():
        global progressbar_music
        current_song_Length = mixer.music.get_pos()//1000
        print(current_song_Length)
        # mixer.music.pause()
        f= current_song_Length+10
        mixer.music.set_pos(f)
        progressbar_music['value']=f
        # mixer.music.progressbar_music(seconds=current_song_Length+10)
        progressbar_music_starttime.configure(text='{}'.format(str(datetime.timedelta(seconds=f))))
        progressbar_music.after(2,func)
    func()

fastForwardBtn = Button(root, bg='#310A3D', image=fast_forward_icon, command=fast_forward)
我的错误:

Tkinter回调回溯中出现异常(最近一次调用最后一次):
文件 “C:\Users\soham\AppData\Local\Programs\Python\Python36\lib\tkinter\u init\uu.py”, 第1702行,在调用中 返回self.func(*args)文件“C:\Users\soham\AppData\Local\Programs\Python\Python36\lib\tkinter\u init\uuuz.py”, 第746行,卡利特 func(*args)文件“e:/python项目/MUSIC PLAYER/MUSIC_PLAYER.py”,第346行,在func中 mixer.music.set_pos(f)pygame.error:此编解码器不支持set_pos


一种简单的方法是使用
pydub
库,通过
python-m pip install pydub
一次性安装它。我编写的下一个函数接受MP3字节(或任何其他音频格式)并返回WAV字节(或由
format='…'
参数表示的任何其他格式),该函数不使用任何文件系统(所有操作都在内存中完成)

my
test.mp3的输出:

5249464624D0110357415645666D7420100000000100020044AC000010B10200
另一种方法是在我的下一个解决方案中使用FFMpeg

我编写了下一个函数
conv_aud()
,它可以将任何音频格式转换为任何其他格式,事实上它也可以转换视频

默认情况下,如果未提供格式,则会将MP3转换为WAV

功能使用,安装一次。此外,如果它位于不在PATH系统变量中的dir内,则应为函数
conv_aud()
提供参数
ffmpeg='c:/PATH/to/ffmpeg.exe'

函数接受输入音频的字节数据或输入文件的str路径或任何打开读取的类似文件的对象。它还接受输入格式字符串的
ifmt
参数,如
'mp3'
,和/或接受输出格式字符串的
ofmt
参数,如
'wav'

函数返回WAV的字节数据

函数使用中间临时目录和退出时删除的文件。此外,该函数还可以在出现错误时打印FFMpeg的错误输出。若有错误,那个么函数是静默的,不打印任何内容

在代码的末尾有一个
test()
函数,它使用
test.mp3
文件作为输入来测试调用函数的不同方式

我的
test.mp3
文件的输出:

5249464654D0110357415645666D7420100000000100020044AC000010B10200
5249464654D0110357415645666D7420100000000100020044AC000010B10200
5249464654D0110357415645666D7420100000000100020044AC000010B10200

一种简单的方法是使用
pydub
库,通过
python-m pip install pydub
一次性安装它。我编写的下一个函数接受MP3字节(或任何其他音频格式)并返回WAV字节(或由
format='…'
参数表示的任何其他格式),该函数不使用任何文件系统(所有操作都在内存中完成)

my
test.mp3的输出:

5249464624D0110357415645666D7420100000000100020044AC000010B10200
另一种方法是在我的下一个解决方案中使用FFMpeg

我编写了下一个函数
conv_aud()
,它可以将任何音频格式转换为任何其他格式,事实上它也可以转换视频

默认情况下,如果未提供格式,则会将MP3转换为WAV

功能使用,安装一次。此外,如果它位于不在PATH系统变量中的dir内,则应为函数
conv_aud()
提供参数
ffmpeg='c:/PATH/to/ffmpeg.exe'

函数接受输入音频的字节数据或输入文件的str路径或任何打开读取的类似文件的对象。它还接受输入格式字符串的
ifmt
参数,如
'mp3'
,和/或接受输出格式字符串的
ofmt
参数,如
'wav'

函数返回WAV的字节数据

函数使用中间临时目录和退出时删除的文件。此外,该函数还可以在出现错误时打印FFMpeg的错误输出。若有错误,那个么函数是静默的,不打印任何内容

在代码的末尾有一个
test()
函数,它使用
test.mp3
文件作为输入来测试调用函数的不同方式

我的
test.mp3
文件的输出:

5249464654D0110357415645666D7420100000000100020044AC000010B10200
5249464654D0110357415645666D7420100000000100020044AC000010B10200
5249464654D0110357415645666D7420100000000100020044AC000010B10200

尝试将声音文件转换为不同类型的
WAV
音频格式应该很容易支持设置位置,像您这样的一些其他格式可能不支持设置为随机位置,因此您需要转换为
WAV
。先生,如何在代码中将mp3转换为wav音频格式并在python队列中将其导出而不保存在磁盘中?@sdbdarknija用于将mp3转换为wav,甚至将任何音频格式转换为任何其他格式。尝试将声音文件转换为其他类型
wav
音频格式应轻松支持设置位置,像您这样的一些其他格式可能不支持设置为随机位置,因此您需要转换为
WAV
。先生,我如何在代码中将mp3转换为WAV音频格式并将其导出到python队列中而不保存在磁盘中?@sdbdarknija用于将mp3转换为WAV,或者任何音频格式到任何其他格式。我想得到这个解决方案,先生,我试过了,但它不起作用,如果它不起作用,那么我没有问题,我只想为我的音乐播放器制作一个快进按钮,如果你能解决我的问题,我将非常高兴problem@SDBDARKNINJA好的,我现在试着解决你的另一个问题,我会在那里回复。@SDBDARKNINJA我解决了你的第二个任务。谢谢你,先生,我会尝试并通知你我想得到这个问题的解决方案,先生,我已经尝试过了,但它不起作用如果它不起作用,那么我没有问题,我只想为我的音乐播放器制作一个快进按钮,如果你解决了我的问题,我会非常高兴problem@SDBDARKNINJA好啊我现在将尝试解决您的另一个问题,我将在那里回答。@sdbdarknija我解决了您的第二个任务。谢谢您,先生。我将尝试并通知您