一款基于vlc、python的数字键盘可控制的iptv流播放程序

查看 16|回复 1
作者:duminghan23   
开源的vlc播放器,需要下载压缩包版本; python3.10以及第三方库。
将两个py文件,然后使用pyinstaller进行打包,将打包结果exe程序,m3u文件放置到vlc压缩包版本的根目录,运行exe程序即可。
本项目已在github开源,仓库名称为:  duminghan23/my_vlc/  。
使用python3.10以及下方第三方库
altgraph==0.17.4
keyboard==0.13.5
packaging==24.2
pefile==2023.2.7
pyinstaller==6.11.1
pyinstaller-hooks-contrib==2024.11
python-vlc==3.0.21203
pywin32-ctypes==0.2.3
arrange_url.py文件用于将m3u文件进行解析。
def channel_url_list():
    print("正在初始化界面列表,", end='')
    with open('./iptv.m3u', 'r', encoding='utf-8') as f:
        contents = f.read()
    rows: list = contents.split('\n')    # 针对每一行数据进行分析
    channel_list: list = []   # 定义下存储频道的列表
    for i in range(len(rows)):
        if rows[i].startswith('#EXTINF'):
            channel_name: str = rows[i].split(',')[1]
            # print(urls_list[i].split(',')[1], end='')
            if rows[i + 1].startswith('http://'):
                channel_url: str = rows[i + 1]
                # print(urls_list[i+1])
                # print(channel_name, channel_url)
                channel_list.append([channel_name, channel_url])
    print("初始化完成!")
    return channel_list
my_vlc.py 是主程序文件,用于调用打开vlc,监听键盘,控制调台。
import keyboard
import queue
import threading
import time
import vlc
from arrange_url import channel_url_list
def play_vlc(event_all: str):
    print("接收到输入的频道操作:", event_all, end='  ')
    global globals_channel_num
    global globals_audio_volume
    global globals_audio_volume_before
    if event_all == '+':    # 频道列表向后移动
        globals_channel_num += 1
    elif event_all == '-':    # 频道列表向前移动
        globals_channel_num -= 1
    elif event_all == '/':    # 声音减小
        if globals_audio_volume-5 >= 0:
            globals_audio_volume -= 5
            player.audio_set_volume(globals_audio_volume)
            print('变更后:globals_audio_volume', globals_audio_volume)
        else:
            print("音量已最小,无法再减小")
        return
    elif event_all == '*':    # 声音增大
        if globals_audio_volume+5
m3u文件的格式为:
#EXTM3U\
#EXTINF:-1,CCTV-1
http://192.168.2.1:4022/rtp/239.254.200.45:8008
#EXTINF:-1,CCTV-2
http://192.168.2.1:4022/rtp/239.254.200.158:6000
#EXTINF:-1,CCTV-3高清
http://192.168.2.1:4022/rtp/239.254.201.152:7205
#EXTINF:-1,CCTV-4
http://192.168.2.1:4022/rtp/239.254.200.190:6307

音量, 队列

hetiwz   

感谢分享,建议作者截个图,能直观感受
您需要登录后才可以回帖 登录 | 立即注册

返回顶部