Tak jedna miniaplikace pro MX LINUX (nebo i jiné linuxy a vůbec)
Píšu to, než to celé zapomenu a začnu odzadu.
Vytvoření a spuštění skriptu, který spouští vlastní program - něco jako zástupce na ploše ve voknech (to je to poslední co se udělá)
- Vytvoření souboru - třeba na ploše s názvem script.sh v programu KATE (sh je něco jako exe pro linux)
- Na první řádek toho souborunapsání příkazu
- #!/bin/python3 /home/pavel/programy/radio/main.py
- s cestou, kde se ten program v krajtě nachází
- spuštění
pod Plasmou - to je desktop systém v MX, jeden z mnoha
Tak a teď vlastní skript v Pythonu (primitivní bez nějakých kudrlinek), napsáno v Kate (nebo Thonny nebo Visual Studio,...)
#!/usr/bin/env/ python3
import tkinter as tk
from tkinter import ttk
import vlc
stanice = ["Country", "Sever", "Blaník","Oldies","Hity70"]
staniceurl=['http://icecast2.play.cz:8000/country128aac',
"https://rozhlas.stream/sever_mp3_128.mp3",
"https://playerservices.streamtheworld.com/api/livestream-redirect/RADIO_BLANIK_128.mp3",
"http://ice.abradio.cz/oldiesradio128.mp3",
"https://playerservices.streamtheworld.com/api/livestream-redirect/HITRADIO_CITY_PRAHA_128.mp3"
]
url = staniceurl[0]
#define VLC instance
instance = vlc.Instance()
#Define VLC player
player=instance.media_player_new()
#Define VLC media
media=instance.media_new(url)
#Set player media
player.set_media(media)
# setting volume
player.audio_set_volume(90)
root = tk.Tk()
root.title('PYTHON RADIO')
window_width = 300
window_height = 300
# get the screen dimension
screen_width = root.winfo_screenwidth()
screen_height = root.winfo_screenheight()
# find the center point
center_x = int(screen_width/2 - window_width / 2)
center_y = int(screen_height/2 - window_height / 2)
# set the position of the window to the center of the screen
root.geometry(f'{window_width}x{window_height}+{center_x}+{center_y}')
root.resizable(False, False)
# grid 5x2
root.rowconfigure(0, weight=1)
root.rowconfigure(1, weight=1)
root.rowconfigure(2, weight=1)
root.rowconfigure(3, weight=1)
root.rowconfigure(4, weight=1)
root.rowconfigure(5, weight=1)
root.columnconfigure(0, weight= 3)
root.columnconfigure(1, weight=1)
def nahr(s):
url = staniceurl[s]
#Define VLC media
media=instance.media_new(url)
#Set player media
player.set_media(media)
#Play the media
player.play()
#showinfo(title='Information',message=url)
label.config(text=stanice[s])
def myfunc1():
nahr(0)
def myfunc2():
nahr(1)
def myfunc3():
nahr(2)
def myfunc4():
nahr(3)
def myfunc5():
nahr(4)
def zobraz_hodnotu(val):
labelp.configure(text=val)
player.audio_set_volume(int(val))
# Vytvoření posuvníku (Scale)
posuvnik = tk.Scale(
root,
from_=100, # Minimální hodnota
to=0, # Maximální hodnota
orient="vertical", # Orientace posuvníku
resolution=1,
command=zobraz_hodnotu # Funkce volaná při změně hodnoty
)
posuvnik.grid(column=1, row=1, rowspan=5, sticky=tk.EW, padx=1, pady=1)
labelp = ttk.Label(root, text="90", font=("Arial", 8))
labelp.grid(column=1, row=0, sticky=tk.EW, padx=1, pady=1)
#label
label = ttk.Label(root, text="VLC Player", font=("Arial", 12))
label.grid(column=0, row=0, sticky=tk.EW, padx=5, pady=1)
# button
prvni_button = ttk.Button(root,text=stanice[0],command=myfunc1)
prvni_button.grid(column=0, row=1, sticky=tk.EW, padx=5, pady=0)
druhy_button = ttk.Button(root,text=stanice[1],command=myfunc2)
druhy_button.grid(column=0, row=2, sticky=tk.EW, padx=5, pady=1)
treti_button = ttk.Button(root,text=stanice[2],command=myfunc3)
treti_button.grid(column=0, row=3, sticky=tk.EW, padx=5, pady=1)
ctvrty_button = ttk.Button(root,text=stanice[3],command=myfunc4)
ctvrty_button.grid(column=0, row=4, sticky=tk.EW, padx=5, pady=1)
paty_button = ttk.Button(root,text=stanice[4],command=myfunc5)
paty_button.grid(column=0, row=5, sticky=tk.EW, padx=5, pady=1)
root.mainloop()
player.stop()
Soubor musíme označit jako spustitelný - Vlastnosti spouboru, záložka Oprávnění , zaškrtnout Je spustitelný
a tady máme výsledek