【问题标题】:Permission error in Python, when working with audiosegment in Windows 10在 Windows 10 中使用音频段时,Python 中的权限错误
【发布时间】:2023-01-09 01:09:31
【问题描述】:

我写了一段简短的文字来播放音频文件。 但是在运行时,程序给出了错误权限。 我注意到每次运行程序时,出现权限错误的文件名都不一样 该文件位于临时路径中 我检查了这条路径,没有那个名字的文件

程序正文:

from pydub import AudioSegment
from pydub.playback import play

try:
     song=AudioSegment.from_wav("myfile.wav")

except IOError:
    print("can not open file")

try:
    play(song)
except IOError:
    print("can not play file")

该程序的输出如下:

My Project Python/my project python/play wav.py"
can not play file

当我在没有块 Try: 的情况下尝试程序时,输出如下:

Traceback (most recent call last):
  File "d:\My Project Python\my project python\play wav.py", line 7, in <module>
    play(song)
  File "C:\Users\H&M\AppData\Local\Programs\Python\Python310\lib\site-packages\pydub\playback.py", line 71, in play    _play_with_ffplay(audio_segment)
  File "C:\Users\H&M\AppData\Local\Programs\Python\Python310\lib\site-packages\pydub\playback.py", line 15, in _play_with_ffplay
    seg.export(f.name, "wav")
  File "C:\Users\H&M\AppData\Local\Programs\Python\Python310\lib\site-packages\pydub\audio_segment.py", line 867, in export
    out_f, _ = _fd_or_path_or_tempfile(out_f, 'wb+')
  File "C:\Users\H&M\AppData\Local\Programs\Python\Python310\lib\site-packages\pydub\utils.py", line 60, in _fd_or_path_or_tempfile
    fd = open(fd, mode=mode)
PermissionError: [Errno 13] Permission denied: 'C:\\Users\\H&M\\AppData\\Local\\Temp\\tmp7t2o2ta1.wav'

【问题讨论】:

    标签: python windows permissions playback temp


    【解决方案1】:

    我找到了这个问题的答案,但这不是优化的答案

    def _play_with_ffplay(seg):
      PLAYER = get_player_name()
      with NamedTemporaryFile("w+b", suffix=".wav") as f:
         fileName = f.name  
      seg.export(fileName, "wav") 
      subprocess.call([PLAYER, "-nodisp", "-autoexit", "-hide_banner", fileName])
      os.remove(fileName) 
    

    我在 playback.py 文件中进行了这些更改并得到了答案。 link

    【讨论】:

      猜你喜欢
      • 2018-01-20
      • 1970-01-01
      • 2021-04-04
      • 2016-08-25
      • 2019-08-09
      • 1970-01-01
      • 2021-06-18
      • 1970-01-01
      • 2021-05-26
      相关资源
      最近更新 更多