I'm trying to play the same sound every minute using the playsound library. In the first lap it plays the sound, but the second time it ends with an error.
The code:
from playsound import playsound
from datetime import datetime
import time
while 1:
playsound('mysound.mp3')
time.sleep(60 - datetime.now().second)
The error:
Error 263 for command:
open mysound.mp3
The specified device is not open or is not recognized by MCI.
Error 263 for command:
close mysound.mp3
The specified device is not open or is not recognized by MCI.
Failed to close the file: mysound.mp3
---------------------------------------------------------------------------
PlaysoundException Traceback (most recent call last)
c:\Users\ ...\notebook.ipynb Cell 4 line 8
5 import time
7 while 1:
----> 8 playsound('mysound.mp3')
9 time.sleep(60 - datetime.now().second)
12 #playsound('mysound.mp3')
13
14 #def get_data():
(...)
19 #
20 #persistencia(get_data)
File c:\src\miniconda\Lib\site-packages\playsound.py:72, in _playsoundWin(sound, block)
70 try:
71 logger.debug('Starting')
---> 72 winCommand(u'open {}'.format(sound))
73 winCommand(u'play {}{}'.format(sound, ' wait' if block else ''))
74 logger.debug('Returning')
File c:\src\miniconda\Lib\site-packages\playsound.py:64, in _playsoundWin.<locals>.winCommand(*command)
60 exceptionMessage = ('\n Error ' + str(errorCode) + ' for command:'
61 '\n ' + command.decode('utf-16') +
62 '\n ' + errorBuffer.raw.decode('utf-16').rstrip('\0'))
...
PlaysoundException:
Error 263 for command:
open mysound.mp3
The specified device is not open or is not recognized by MCI.
This solution, adopted from Simas Joneliunas's solution here worked for me. It is likely that you need to pass a full file path to
playsound()
. The source code for this module may give you more insight into how it looks for files to play. I use a Windows computer so my path to the audio file needs the double slashes\\
. This is not necessary for Linux or MacOS systems.