2017-01-26 15 views
0

Я написал код, который играет песню, но я не знаю, как остановить песню во время его воспроизведения (я запустить его с ЦМД)Остановить воспроизведение музыки с помощью модуля vlc?

Это код:

import vlc 

my_song = vlc.MediaPlayer("path to song") 

my_song.play() 

while True: 
    pass 

I подумал, что если я буду запускать другой код во время воспроизведения музыки (в другом CMD-окне), это остановит песню, но она не работает. Это была идея:

import vlc 

my_song = vlc.MediaPlayer("path to song") 

my_song.stop() 

while True: 
    pass 

Цель состоит в том, чтобы играть и останавливать музыку, я создаю музыкальную программу. Tnx для справки

+0

Похоже, вызвав 'стоп()' метод должен работать. См. Метод 'OnStop()' is [this] (http://git.videolan.org/?p=vlc/bindings/python.git;a=blob;f=examples/tkvlc.py;h=55314cab09948fc2b7c84f14a76c6d1a7cbba127; hb = HEAD) для примера приложения. – martineau

ответ

0

Кажется, что все это должно быть частью одного процесса, а не разбито на два процесса (два окна команд). В зависимости от того, как вы его запускаете, один процесс (окно), вероятно, не знает о другом процессе (окне).

Вы, вероятно, захотите выполнить это в том же коде, что и код, упомянутый в комментарии к @ martineau выше. Для прекращения игры вам понадобится событие. Ниже приведен пример события таймера.

import vlc 
import time 

my_song = vlc.MediaPlayer("path to song") 

my_song.play() 

timeout = time.time() + 3 # 3 seconds from now 
while True: 
    if time.time() > timeout: 
     my_song.stop() 

Вы можете еще одно событие как кнопка и т.д.