我正在Windows10:playsound上测试一个Python包
它似乎对路径名的某些字符有问题,例如“c:\sauté”和宽字符。所以找不到文件。在
Error 275 for command: open "C:\sauté.wav" alias playsound_0.4091468603477375 Cannot find the specified file. Make sure the path and filename are correct.
我试图使用unicode版本mciSendStringW()
。结果发现mciSendStringW根本无法识别编码的命令。我不知道我现在还能做什么。在
def winCommand(*command):
buf = c_buffer(255)
command = ' '.join(command).encode(getfilesystemencoding())
errorCode = int(windll.winmm.mciSendStringA(command, buf, 254, 0))
if errorCode:
errorBuffer = c_buffer(255)
windll.winmm.mciGetErrorStringA(errorCode, errorBuffer, 254)
exceptionMessage = ('\n Error ' + str(errorCode) + ' for command:'
'\n ' + command.decode() +
'\n ' + errorBuffer.value.decode())
raise PlaysoundException(exceptionMessage)
return buf.value
prj站点:https://pypi.org/project/playsound/(包括安装和快速入门指南)
源代码:https://raw.githubusercontent.com/TaylorSMarks/playsound/master/playsound.py
Microsoft mciSendString函数: https://docs.microsoft.com/en-us/previous-versions/dd757161(v=vs.85)
虽然返回“0”(成功),但没有声音。我的是Python3.7和Win10。我也试过utf-8,utf-16-le,但都没用。
整个代码(ASCII):
UNICODE码:
^{pr2}$如果代码有效,它将返回
0: The specified command was carried out
。在注意:
使用wide函数
mciSendStringW
时,不应对字符串进行编码。因此,您的行应该简单地读command = ' '.join(command)
。至少在我安装了python3.6的Windows10机器上是这样。在要重新检查,可以运行下面的代码。第二个错误代码是296,这只是抱怨它是错误的文件类型,因为我们为测试创建了一个空文件。在
相关问题 更多 >
编程相关推荐