Форум сайта python.su
The gray CardinalНе уверен, что мой код - это выход. Управлять запущенным плеером никак невозможно.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')
Офлайн
bialixДа, правильная идея, но как-то пока не получается… Интересно, что объект WMPlayer нормально работает на HTML-странице, в частности, через объект “htmlfile” (своего рода эмуляция HTML-страницы). Вот обсуждение с примерами кода:
Я бы все-таки поразбирался с СОМ объектом WMPlayer и понял, почему он не работает.
Вероятно пример устарел и новые версии WMPlayer требуют другой последовательности действий.
Офлайн
The gray CardinalЯ только недавно с СОМ-объектами начал разбираться. Я пока не волшебник.bialixДа, правильная идея, но как-то пока не получается… Интересно, что объект WMPlayer нормально работает на HTML-странице, в частности, через объект “htmlfile” (своего рода эмуляция HTML-страницы). Вот обсуждение с примерами кода:
Я бы все-таки поразбирался с СОМ объектом WMPlayer и понял, почему он не работает.
Вероятно пример устарел и новые версии WMPlayer требуют другой последовательности действий.
http://forum.script-coding.info/viewtopic.php?pid=7556#p7556
Воспроизвести этот пример на Python у меня не получилось, та же петрушка - ошибок нет, но ничего не происходит. Может, у тебя получится…
Офлайн
Может вот это http://www.speech.kth.se/snack/ поможет?
Офлайн
Короче вот: http://pymedia.org/
проверял - всё пашет. Ну вы тут и намудрили%)
Офлайн
Спасибо за ссылки на модули! Но хочется нативными средствами…
Не могу понять, почему один и тот же код на VBScript работает, а на Python - нет.
Set WMPlayer = CreateObject("WMPlayer.OCX")
WMPlayer.settings.autoStart = False
WMPlayer.settings.enableErrorDialogs = False
WMPlayer.URL = "C:\WINDOWS\Media\chimes.wav"
WMPlayer.controls.play()
While WMPlayer.playState <> 1
WScript.Echo WMPlayer.playState
WScript.Sleep 1000
Wend
WScript.Echo WMPlayer.playState
import time from win32com.client import Dispatch WMPlayer = Dispatch("WMPlayer.OCX") WMPlayer.settings.autoStart = False WMPlayer.settings.enableErrorDialogs = False WMPlayer.URL = '"C:\\WINDOWS\\Media\\chimes.wav"' WMPlayer.controls.play() while WMPlayer.playState <> 1: print WMPlayer.playState time.sleep(1) print WMPlayer.playState
Офлайн
The gray CardinalКажись, ясно в чем проблема, надо так:
Спасибо за ссылки на модули! Но хочется нативными средствами…
Не могу понять, почему один и тот же код на VBScript работает, а на Python - нет.Set WMPlayer = CreateObject("WMPlayer.OCX")
WMPlayer.settings.autoStart = False
WMPlayer.settings.enableErrorDialogs = False
WMPlayer.URL = "C:\WINDOWS\Media\chimes.wav"
WMPlayer.controls.play()
While WMPlayer.playState <> 1
WScript.Echo WMPlayer.playState
WScript.Sleep 1000
Wend
WScript.Echo WMPlayer.playStateВ Питоне playState всегда 9 (wmposMediaLocating), никак не может открыть файл… На VBScript открывает почти мгновенно, всё работает.import time from win32com.client import Dispatch WMPlayer = Dispatch("WMPlayer.OCX") WMPlayer.settings.autoStart = False WMPlayer.settings.enableErrorDialogs = False WMPlayer.URL = '"C:\\WINDOWS\\Media\\chimes.wav"' WMPlayer.controls.play() while WMPlayer.playState <> 1: print WMPlayer.playState time.sleep(1) print WMPlayer.playState
Офлайн
wellТы хочешь сказать, у тебя это работает? У меня - нет, playState всегда 9. А кавычки появились в результате диких попыток добиться работы. Не работает ни с кавычками, ни без.
Лишние кавычки
Отредактировано (Янв. 6, 2008 10:11:47)
Офлайн
The gray Cardinalда, у меня заиграло, причем, почему-то дико-громко. Я начал задумываться о ночном просиживании перед компом в наушниках и покупке нового кресла :). У меня Python 2.5.1 + pywin32-210.win32-py2.5 на WinXP SP2. А что показывает если так сделать:wellТы хочешь сказать, у тебя это работает? У меня - нет, playState всегда 9. А кавычки появились в результате диких попыток добиться работы. Не работает ни с кавычками, ни без.
Лишние кавычки
ActivePython 2.5, WinXP SP2.
Отредактировано (Янв. 6, 2008 11:18:12)
Офлайн
При enableErrorDialogs=True у меня не выбрасывает никаких окон, ни с кавычками, ни без. И не работает ни из-под SciTE, ни при “прямом” запуске - всегда бесконечно идёт девятка. При запуске из-под Pythonwin последний просто виснет намертво. Работает только при пошаговом исполнении в отладчике Pythonwin (что вообще не понятно).
Офлайн