Форум сайта python.su
Чем можно синхронно воспроизвести mp3? Вот так не очень хорошо, поскольку появляется визуальное окно, а оно мне совсем не нужно:
commandLine = 'MPLAY32 /play /close "C:\\Distr\\Music\\Audio\\buratino.mp3"' os.popen4(commandLine)
Офлайн
поиск в гугле дает такой пример кода: http://www.daniweb.com/code/snippet208.html
с использованием COM, поэтому нужно, чтобы пакет pywin32 был установлен.
Офлайн
bialixСпасибо, но к сожалению, пример нерабочий - ошибок не выдаётся, но ничего не происходит - звук не воспроизводится.
поиск в гугле дает такой пример кода
Офлайн
а стандартный модуль winsound тоже не работает?
Офлайн
bialix
а стандартный модуль winsound тоже не работает?
winsound.PlaySound(u'C:\\Distr\\Music\\Audio\\buratino.mp3', winsound.SND_FILENAME)
Отредактировано (Янв. 3, 2008 16:30:44)
Офлайн
А можно запустить GUI-приложение в скрытом окне? Например, в VBScript это делается на раз:
Set WshShell = CreateObject("WScript.Shell")
WshShell.Run "MPLAY32 /play /close C:\WINDOWS\Media\ding.wav", 0, 1
Офлайн
Под Debian я использовал pymad -> http://spacepants.org/src/pymad/ - питоновская обертка для libmad -> http://sourceforge.net/project/showfiles.php?group_id=12349. И то и другое доступно также и для Windows.
Пример использования (взят из документации):
import mad, ao, sys
mf = mad.MadFile(sys.argv)
dev = ao.AudioDevice('oss', rate=mf.samplerate())
while 1:
buf = mf.read()
if buf is None:
break
dev.play(buf, len(buf))
Офлайн
ZANСпасибо, но как-то уж слишком наворочено - чтобы проиграть mp3, нужно устанавливать специально две программы? Имхо, должен быть способ проще…
я использовал pymad
Офлайн
The gray CardinalВот как этот же самый код выглядит на Питоне
А можно запустить GUI-приложение в скрытом окне? Например, в VBScript это делается на раз:Set WshShell = CreateObject("WScript.Shell")
WshShell.Run "MPLAY32 /play /close C:\WINDOWS\Media\ding.wav", 0, 1
Офлайн
bialixАга, спасибо, это выход :).
Вот как этот же самый код выглядит на Питоне
import ctypes, time # синхронное воспроизведение указанного mp3 файла ctypes.windll.winmm.mciExecute('play C:\\Temp\\kukryniksy-kaif.mp3 wait') # асинхронное воспроизведение указанного midi файла с последующей остановкой ctypes.windll.winmm.mciExecute('play C:\\Temp\\flourish.mid') time.sleep(10) ctypes.windll.winmm.mciExecute('close C:\\Temp\\flourish.mid')
Офлайн