python 编写展厅播放器
时间: 2023-10-17 21:23:11 浏览: 78
以下是 Python 编写展厅播放器的示例代码:
```python
import os
import time
import random
from tkinter import *
root = Tk()
root.title("展厅播放器")
root.geometry("800x600")
# 获取所有媒体文件
media_dir = "media/"
media_files = os.listdir(media_dir)
# 随机播放顺序
random.shuffle(media_files)
# 创建播放器
player = None
# 创建 Label 显示当前播放的文件名
filename_label = Label(root, text="", font=("Arial", 20))
filename_label.pack(pady=20)
# 创建播放/暂停按钮
is_playing = False
play_button = Button(root, text="播放", font=("Arial", 16), command=lambda: toggle_play())
play_button.pack(pady=10)
# 创建停止按钮
stop_button = Button(root, text="停止", font=("Arial", 16), command=lambda: stop_play())
stop_button.pack(pady=10)
# 创建循环播放复选框
is_looping = BooleanVar()
loop_checkbox = Checkbutton(root, text="循环播放", font=("Arial", 16), variable=is_looping)
loop_checkbox.pack(pady=10)
def toggle_play():
global player, is_playing
if not is_playing:
if player is None or player.is_finished():
# 播放第一个媒体文件
filename = media_files[0]
player = MediaPlayer(media_dir + filename, callback=lambda: on_finished(filename))
else:
player.resume()
play_button.config(text="暂停")
is_playing = True
else:
player.pause()
play_button.config(text="播放")
is_playing = False
def stop_play():
global player, is_playing
if player is not None:
player.stop()
player = None
play_button.config(text="播放")
is_playing = False
def on_finished(filename):
global player, is_playing
filename_label.config(text="")
play_button.config(text="播放")
is_playing = False
if is_looping.get():
# 循环播放
player = MediaPlayer(media_dir + filename, callback=lambda: on_finished(filename))
player.play()
else:
# 播放下一个媒体文件
index = media_files.index(filename)
if index < len(media_files) - 1:
filename = media_files[index + 1]
player = MediaPlayer(media_dir + filename, callback=lambda: on_finished(filename))
player.play()
root.mainloop()
```
该程序使用 tkinter 库创建了一个简单的界面,包括以下组件:
- Label:用于显示当前播放的文件名。
- Button:用于播放或暂停媒体文件,以及停止播放。
- Checkbutton:用于选择是否循环播放。
程序的核心是 MediaPlayer 类,它使用 vlc 库播放媒体文件,并在播放完成时调用回调函数,以便进行下一步操作。该程序还使用 os 和 random 库来获取所有媒体文件并随机播放顺序。
该程序可以播放常见的音频和视频格式,如 MP3、WAV、MP4、AVI 等。在使用之前,请确保已安装 vlc 库并设置了环境变量。
阅读全文