在做一个音乐播放器时发现pyinstaller -F 成exe文件文件时能正常运行,但是 pyinstaller -w -F 隐藏cmd后却无法运行了,最后查到是AudioSegment.from_mp3、AudioSegment.from_flv等等这一类函数出了问题。
from pydub import AudioSegment
from pydub.playback import play
def _mp3():
song = AudioSegment.from_mp3("下一站天后 - Twins.mp3")
# 剪切
# seg = song[:30000]
# 时长(ms)
# duration1 = len(song) # 毫秒
# duration2 = song.duration_seconds # 秒(浮点型)
# 音量调节(dB)
song = song + 7
# 重复播放
# repeat = song * 2
# 拼接
song = song[:3000] + song[:3000]
# 导出
# song.export("以父之名前30秒.mp3", format="mp3")
# 淡入
# song.append(seg, crossfade=2000)
# 淡出
# song.fade_in(2000).fade_out(2000)
# 打标记
# song.export("以我之名.mp3", format="mp3", tags={'artist': 'teark', 'album': 'teark', 'comments': 'teark'})
# 加速减速
song = song._spawn(song.raw_data, overrides={"frame_rate": int(song.frame_rate * 1.4)}).set_frame_rate(
song.frame_rate)
# 播放
play(song)
if __name__ == '__main__':
_mp3()
用上面的代码测试,pyinstaller -F打包运行无问题,pyinstaller -w -F 打包后报错
网上百度了一下,都是关于chrome的,不知道是哪个库,要把.close改成.quit,因为.close有时不能成功关闭,导致后台有多个相同进程。
我也想类比的尝试修改pydub库底层“audio_segment.py”和“utils.py”两个文件,但是没有成功。
到此实在没办法了,特来寻求大家的帮助!
万谢!