weixin_43235429 2021-10-19 22:38 采纳率: 0%
浏览 46

pydub和pyinstaller -w 的兼容性问题

在做一个音乐播放器时发现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 打包后报错

img

网上百度了一下,都是关于chrome的,不知道是哪个库,要把.close改成.quit,因为.close有时不能成功关闭,导致后台有多个相同进程。
我也想类比的尝试修改pydub库底层“audio_segment.py”和“utils.py”两个文件,但是没有成功。
到此实在没办法了,特来寻求大家的帮助!
万谢!

  • 写回答

1条回答 默认 最新

  • CSDN专家-黄老师 2021-10-20 00:49
    关注

    pydub高度依赖ffmpeg,而ffmpeg执行的时候会有窗口的,这是个矛盾,你的报错都是来自源码,建议换其他库

    评论

报告相同问题?

问题事件

  • 创建了问题 10月19日

悬赏问题

  • ¥20 求一个html代码,有偿
  • ¥100 关于使用MATLAB中copularnd函数的问题
  • ¥20 在虚拟机的pycharm上
  • ¥15 jupyterthemes 设置完毕后没有效果
  • ¥15 matlab图像高斯低通滤波
  • ¥15 针对曲面部件的制孔路径规划,大家有什么思路吗
  • ¥15 钢筋实图交点识别,机器视觉代码
  • ¥15 如何在Linux系统中,但是在window系统上idea里面可以正常运行?(相关搜索:jar包)
  • ¥50 400g qsfp 光模块iphy方案
  • ¥15 两块ADC0804用proteus仿真时,出现异常