Python VLC 仅适用于 python shell
Python VLC only works in python shell
我想制作一个音乐播放器,我正在通过 vlc 模块播放音频文件。
我用这段代码来播放文件:
import vlc
p = vlc.MediaPlayer("music/song.mp3")
p.play()
在 python shell 中,它工作正常并播放文件。
如果我尝试使用一个文件并 运行 它,它会直接退出而不播放任何内容。
play()
开始在单独的线程中播放音乐,因此在主线程中您可以 运行 其他代码 - 即。您可以创建带有按钮的 GUI 来控制音乐,或显示此音乐的动画。但是如果你不 运行 其他代码 - 比如 input()
- 然后它结束脚本并结束 Python 并且它停止线程与音乐。
您必须 运行 在主线程中编写一些代码以保持 运行 宁 Python 然后线程播放音乐。
甚至可以是while True: pass
而不是input()
。
在示例中,我使用 p.is_playing()
到 运行 while
循环直到音乐结束。
import vlc
import time
p = vlc.MediaPlayer("music/song.mp3")
p.play()
print('is_playing:', p.is_playing()) # 0 = False
time.sleep(0.5) # sleep because it needs time to start playing
print('is_playing:', p.is_playing()) # 1 = True
while p.is_playing():
time.sleep(0.5) # sleep to use less CPU
在 Python shell
你 运行 Python
一直运行 所以它可以一直 运行 与音乐串连。
编辑:
使用 tkinter
显示 window 和按钮 Exit
的示例。因为 windows 一直显示所以分离的线程可以一直播放音乐。
import vlc
import tkinter as tk
p = vlc.MediaPlayer("music/song.mp3")
p.play()
def on_click():
p.stop() # stop music
root.destroy() # close tkinter window
root = tk.Tk()
button = tk.Button(root, text="Exit", command=on_click)
button.pack()
root.mainloop()
使用tkinter
你可以构建播放器。
vlc
有几个更复杂的例子,如何使用 vlc
和不同的 GUI
https://git.videolan.org/?p=vlc/bindings/python.git;a=tree;f=examples;hb=HEAD
函数is_playing() I found in documentation for MediaPlayer
我想制作一个音乐播放器,我正在通过 vlc 模块播放音频文件。 我用这段代码来播放文件:
import vlc
p = vlc.MediaPlayer("music/song.mp3")
p.play()
在 python shell 中,它工作正常并播放文件。 如果我尝试使用一个文件并 运行 它,它会直接退出而不播放任何内容。
play()
开始在单独的线程中播放音乐,因此在主线程中您可以 运行 其他代码 - 即。您可以创建带有按钮的 GUI 来控制音乐,或显示此音乐的动画。但是如果你不 运行 其他代码 - 比如 input()
- 然后它结束脚本并结束 Python 并且它停止线程与音乐。
您必须 运行 在主线程中编写一些代码以保持 运行 宁 Python 然后线程播放音乐。
甚至可以是while True: pass
而不是input()
。
在示例中,我使用 p.is_playing()
到 运行 while
循环直到音乐结束。
import vlc
import time
p = vlc.MediaPlayer("music/song.mp3")
p.play()
print('is_playing:', p.is_playing()) # 0 = False
time.sleep(0.5) # sleep because it needs time to start playing
print('is_playing:', p.is_playing()) # 1 = True
while p.is_playing():
time.sleep(0.5) # sleep to use less CPU
在 Python shell
你 运行 Python
一直运行 所以它可以一直 运行 与音乐串连。
编辑:
使用 tkinter
显示 window 和按钮 Exit
的示例。因为 windows 一直显示所以分离的线程可以一直播放音乐。
import vlc
import tkinter as tk
p = vlc.MediaPlayer("music/song.mp3")
p.play()
def on_click():
p.stop() # stop music
root.destroy() # close tkinter window
root = tk.Tk()
button = tk.Button(root, text="Exit", command=on_click)
button.pack()
root.mainloop()
使用tkinter
你可以构建播放器。
vlc
有几个更复杂的例子,如何使用 vlc
和不同的 GUI
https://git.videolan.org/?p=vlc/bindings/python.git;a=tree;f=examples;hb=HEAD
函数is_playing() I found in documentation for MediaPlayer