Найти в Дзене
programmer's notes (python and more)

Программирование на языке Python. Создание простого медиаплеера на основе python-библиотеки vlc и библиотеки tkinter

Доброго времени суток, читатели, зрители моего канала programmer's notes. Не забывайте подписываться и писать свои комментарии к моим статьям и видео.

Использование библиотеки vlc для создании простого медиа-проигрывателя

Прежде всего дам ссылку на мою статью, где рассказывается о создании проигрывателя с помощью PyQt5 (QVideoWidget, QMediaPlayer):

Но есть другие инструменты создания проигрывателя. Модуль vlc можно использовать, когда у вас на компьютере уже есть проигрыватель vlc. У меня то с этим нет проблем, я всегда эту программу использовал. vlc в общем не плохая библиотека, можно на её основе создать что-то своё. Установить библиотеку можно просто (pip или pip3)

pip3 install vlc

или

pip3 install python-vlc

Программа ниже (рисунки 1, 2) представляет довольно ограниченную функциональность. Но она чисто учебная, можно развивать идеи или реализовывать свои. Окно программы представлено на рисунке 3. Значение кнопок: Запустить - выбрать видео или звуковой файл для запуска, кнопка Стоп/Прод - приостановить/продолжить проигрывание, кнопка Кон - остановить проигрывание, кнопка Пер - проигрывать начиная с места, указанного в крайнем поле редактирования в секундах (здесь 4000 сек), поле слева показывает общую продолжительность в секундах (6600 сек). В качестве окна проигрывателя используется виджет tkinter, с которым уже подробно знакомились.

Рисунок 1. Скриншот первой части программы. Весь текст программы см. ниже по ссылке
Рисунок 1. Скриншот первой части программы. Весь текст программы см. ниже по ссылке

Пояснение к части программы, представленной на скриншоте на рисунке 1.

  • В целом читателю должно быть всё знакомо. Ну кроме такого элемента как tkinter.Frame. Это такая рамка, куда можно помещать другие объекты. Вот именно туда поместим наш проигрыватель (см. ниже).
Рисунок 2. Вторая половина программы "Проигрыватель". Весть текст программы см. ниже по ссылке
Рисунок 2. Вторая половина программы "Проигрыватель". Весть текст программы см. ниже по ссылке
primer366.py

Пояснение к остальной части программы

  • Функция vid(). Выбор файла для проигрывания. Если файл выбран, то создаётся объект vlc. MediaPlayer и этот объект привязывается к tkinter.Frame: vds.set_xwindow(self.fr.winfo_id()). далее проигрыватель запускается: vds.play() и определяется длину видео или звукового файла в секундах: vlc.get_length() // 1000. Значение помещается в соответствующее поле. Отметим задержку time.sleep(). Дело в том, что видео запускается в параллельном процессе и нужно подождать, когда запуск окончательно произойдёт.
  • Кстати, обращу внимание, что поле ввода, где длина проигрывания в секундах закрыта для чтения. Чтобы туда записать, приходится в начаел снять ограничение, а потом снова наложить:
    self.ed1.configure(state='normal')
    self.ed1.delete(0, tk.END)
    self.ed1.insert(0, str(self.v) + ' сек.')
    self.ed1.configure(state='readonly')
  • Пауза определяется методом vlc.pause(), при чём второй вызов метода паузу снимает.
  • Окончание проигрывания устанавливается методом vlc.stop().
  • Наконец перевод проигрывания в нужную точку (по секундам) осуществляется методом vlc.set_position().
Рисунок 3. Окно программы (см. рисунки 1, 2)
Рисунок 3. Окно программы (см. рисунки 1, 2)

Пока всё!

Пишите свои предложения и замечания, и занимайтесь программированием, а также проектированием баз данных, хотя бы для поддержания уровня интеллекта.

Написать программу и смотреть с помощью неё фильмы. В этом есть особый смысл.
Написать программу и смотреть с помощью неё фильмы. В этом есть особый смысл.