Pemutar Video PySide versi 5

BelajarPython - Assalamualaikum wr. wb.

Jumpa lagi sahabat python.. Pada kesempatan kali ini saya akan mengajak kalian untuk membuat mini aplikasi lagi.. Aplikasi apa? Langsung saja di simak ya..

Pengenalan aplikasi yang akan kita buat.

Aplikasi yang kita buat kali ini adalah pemutar video dengan fitur yang standard seperti umum nya saja... Oya, seperti biasa, Aplikasi ini saya posting dengan berbagai versi.. Dengan penambahan fitur di tiap versinya.. Jika kalian ingin melihat semua versi nya, KLIK DISINI ya...

Di versi ke lima ini saya akan memberikan sebuah slider progress pemutaran video dan juga slide volume nya..

Rincian Lengkap Aplikasi Pemutar Video PySide Versi 5.0

Aplikasi ini menggunakan library PySide.. Sehingga, kalian perlu menginstall library tersebut untuk menjalankan aplikasi ini.. Klik disini kalau belum install..

Nama: mn-VideoPlayer 5.0
Versi: 5.0 || selanjutnya.
Bahasa: Python 3.x  || Install.
Modul: PySide || Install.
Baris Code: +-113 baris.
Penambahan: +-12  baris.
Terdiri dari: 1 class dan 11 metode.
Fitur: Slider progress putar dan slider volume.
Kelemahan: belum ada waktu putar.
syarat menjalankan: Python 3.x, PySide, dan editor teks / IDE.
Cara menjalankan: install python 3 dan PySide, copy paste code program pada editor/IDE, simpan dalam file python(ekstensi ‘.py’), lalu jalankan.

Kalian juga bisa membuat code program ini menjadi file aplikasi loh.. iya file aplikasi seperti "exe" itu.. sehingga, nantinya kita cukup klik dua kali saja untuk menjalankan aplikasi ini... tanpa perlu repot - repot membuka nya di IDLE atau IDE python.. nah seperti apa caranya? cukup mudah kok.. dan saya juga sudah membuatkan tutorialnya.. untuk kalian yang menggunakan windows, KALIAN BISA KLIK DISINI ya temen - temen.. atau jika pada link pertama terlalu rumit, KALIAN BISA MENCOBA CARA INI ya.... dan bagi pengguna linux ? tenang saja.. bisa juga kok membuat file executable nya.. untuk melihat tutorialnya, KALIAN BISA KLIK DISINI temen - temen...

Code program aplikasi Pemutar Video PySide versi 5.0

Nah lalu seperti apa code program versi ini ? Oke, Berikut saya berikan code program nya ya...

from PySide import QtGui

from PySide.phonon import Phonon



class videoPlayer(QtGui.QWidget):

    def __init__(self):

        super(videoPlayer, self).__init__()

        self.initUI()



        self.path = ''



    def initUI(self):

        self.a = QtGui.QMainWindow(self)

        self.setWindowTitle('Pemutar Video -> mn-belajarpython.blogspot.co.id')

        self.layout = QtGui.QGridLayout(self)

        self.layoutTombol = QtGui.QHBoxLayout(self)



        self.inisialisasiMedia()

        self.buatTombol()

        self.buatSliderVolume()



        self.layout.setRowStretch(0, 1)

        self.layout.setColumnStretch(0,1)



        self.show()



    def inisialisasiMedia(self):

        self.pemutarVideo = Phonon.VideoPlayer(self)

        self.layout.addWidget(self.pemutarVideo, 0, 0, 1, 6)  # set size screenvideo



        self.audio = self.pemutarVideo.audioOutput()



    def buatSliderVolume(self):

        self.sliderProsesVideo =Phonon.SeekSlider(self)

        self.layout.addWidget(self.sliderProsesVideo,2,0,1,3)

        self.sliderProsesVideo.setMediaObject(self.pemutarVideo.mediaObject())



        self.sliderVolume = Phonon.VolumeSlider(self)        # memanggil objek sliderVolume

        self.layout.addWidget(self.sliderVolume,2,4)

        self.sliderVolume.maximumVolume()                 # createMaximum Sound when objek Created

        self.sliderVolume.setAudioOutput(self.audio)      # memasukkan objek sliderVolume untk mengatur volume



    def buatTombol(self) :

        self.tombolPlay = QtGui.QPushButton('Play', self)

        self.tombolPlay.setToolTip('play video')

        self.layoutTombol.addWidget(self.tombolPlay)

        self.tombolPlay.clicked.connect(self.putarAtauPause)



        tombolPrevious = QtGui.QPushButton('Previous', self)

        tombolPrevious.setToolTip('Previous video')

        self.layoutTombol.addWidget(tombolPrevious)

        tombolPrevious.clicked.connect(self.perintahPrevious)



        tombolStop = QtGui.QPushButton('Stop', self)

        tombolStop.setToolTip('stop video')

        self.layoutTombol.addWidget(tombolStop)

        tombolStop.clicked.connect(self.perintahStop)



        tombolNext = QtGui.QPushButton('Next', self)

        tombolNext.setToolTip('next video')

        self.layoutTombol.addWidget(tombolNext)

        tombolNext.clicked.connect(self.perintahNext)



        tombolOpen = QtGui.QPushButton('open', self)

        tombolOpen.setToolTip('open a video')

        self.layoutTombol.addWidget(tombolOpen)

        tombolOpen.clicked.connect(self.perintahBuka)



        self.layout.addLayout(self.layoutTombol, 3, 0, 1, 7)



    def perintahBuka(self):

        dialog = QtGui.QFileDialog(self)                        # memanggil objekFileDialog

        dialog.setFileMode(QtGui.QFileDialog.ExistingFile)      # memanggil objek dengan semua tipe file

        if dialog.exec_() == QtGui.QDialog.Accepted:

            self.path = dialog.selectedFiles()[0]

            self.pemutarVideo.play(self.path)

            self.tombolPlay.setText('Play')

            self.putarAtauPause()



    def putarAtauPause(self):

        if self.path :

            if self.tombolPlay.text() == 'Play' :

                self.tombolPlay.setText('Pause')

                self.pemutarVideo.play()

            else :

                self.pemutarVideo.pause()

                self.tombolPlay.setText('Play')

        else:

            self.perintahBuka()



    def perintahStop(self):

        self.tombolPlay.setText('Play')

        self.pemutarVideo.stop()



    def perintahPrevious(self):

        waktuPutar = self.pemutarVideo.currentTime()

        if waktuPutar > 5000 :

            self.pemutarVideo.seek(waktuPutar-5000)



    def perintahNext(self):

        waktuPutar = self.pemutarVideo.currentTime()

        total = self.pemutarVideo.totalTime()

        if total-5000>waktuPutar :

            self.pemutarVideo.seek(waktuPutar+5000)



    def closeEvent(self, event):

        self.destroy()



if __name__ == '__main__':

    import sys

    app = QtGui.QApplication(sys.argv)

    window = videoPlayer()

    window.show()

    sys.exit(app.exec_())


Dan berikut contoh screenshoot dari mini aplikasi kali ini...



Penjelasan code program Aplikasi Pemutar Video PySide versi 5.0

Sekarang saya akan mencoba untuk menjelaskan code program yang sudah saya bagikan di atas tadi.. Agar kalian lebih mudah untuk memahaminya.. Oke, Langsung saja..
[NOTE : Teks berwarna MERAH pada penjelasan adalah Code tambahan yang tidak ada di versi sebelumnyaDan yang Berwarna BIRU akan di hapus di versi berikutnya. Jika Code berwarna MERAH dan komentar berwarna BIRU maka merupakan code baru dan akan di hapus di versi berikutnya]

from PySide import QtGui, QtCore  //mengimport class QtGui dan QtCore dari pyside
from PySide.phonon import Phonon  ///mengimport Phonon dari PySide

class PemutarVideo(QtGui.QWidget):  //membuat clas ‘PemutarVideo”
    def __init__(self):  //construktor dari clas “PemutarVideo”
        super(PemutarVideo, self).__init__()  //menjalankan superclass (QWidget)
        self.initUI()  //menjalankan metode ‘initUi’

        self.path = ''  //lokasi Video (kosong awal)

    def initUI(self):  //metode ‘initUI’
        self.setWindowTitle('Pemutar Video -> mn-belajarpython.blogspot.co.id')  //mengubah judl window aplikasi
        self.layout = QtGui.QGridLayout(self)i  //membuat Layout (grid Layout)
        self.buatTombol()   //menjalankan metode buatTombol
        self.buatSliderVolume()  //menjalankan metode ‘buatSliderVolume

        self.inisialisasiMedia()  //menjalankan metode ‘inisialisasiMedia’

        self.layout.setRowStretch(0, 1)  //Menentukan posisi yang akan di ubah ukuran nya saat window di ubah ukurannya

        self.show()  //menampilkan window


    def inisialisasiMedia(self):  //metode ‘inisialisasiMedia’
        self.pemutarVideo = Phonon.VideoPlayer(self)  //memanggil class ‘VideoPlayer’ (layar video)
        self.layout.addWidget(self.pemutarVideo, 0, 0, 1, 6)  # set size screenvideo  //memasukkan pemutar video ke dalam window

        self.audio = self.pemutarVideo.audioOutput()  //membuat audio output Video

    def buatSliderVolume(self):  //metode buatSliderVolume
        self.sliderProsesVideo =Phonon.SeekSlider(self)  //membuat slider progress putar video
        self.layout.addWidget(self.sliderProsesVideo,2,0,1,3)  //memasukkan slider ke window
        self.sliderProsesVideo.setMediaObject(self.pemutarVideo.mediaObject())  //menghubungkan pemutar video dengan slider.

        self.sliderVolume = Phonon.VolumeSlider(self)  //membuat slider volume
        self.layout.addWidget(self.sliderVolume,2,4)  //memasukkan slider volume kewindow
        self.sliderVolume.maximumVolume()  //membuat volume berada di level maksimal
        self.sliderVolume.setAudioOutput(self.audio)   //menghubungkan slider dengan pemutar viideo

    def buatTombol(self) :  //metode buatTombol

        self.tombolPlay = QtGui.QPushButton('Play', self)  //membuat tombol play
        self.tombolPlay.setToolTip('play video')  //membuat tooltip
        self.layout.addWidget(self.tombolPlay, 2, 1)  //memasukkan tombol ke window
        self.tombolPlay.clicked.connect(self.putarAtauPause)  //menjalankan metode ‘putarAtauPause’ jika di klik

        tombolPrevious = QtGui.QPushButton('Previous', self)  //membuat tombol previous
        tombolPrevious.setToolTip('Previous video')  //membuat tooltip
        self.layout.addWidget(tombolPrevious, 2, 1)  //memasukkan tombol ke window
        tombolPrevious.clicked.connect(self.perintahPrevious)  //menjalankan metode ‘perintahPrevious’ ketika di klik

        tombolStop = QtGui.QPushButton('Stop', self)  //membuat tombol stop
        tombolStop.setToolTip('stop video') //membuat tooltip
        self.layout.addWidget(tombolStop, 2, 2)  //memasukkan tombol stop ke window
        tombolStop.clicked.connect(self.perintahStop)  //menghubungkan tombol stop untuk menjalankan metode ‘perintahStop’ jika di klik

        tombolNext = QtGui.QPushButton('Next', self)  //tombol next
        tombolNext.setToolTip('next video')  //membuat tooltip
        self.layout.addWidget(tombolNext, 2, 3)  //memasukkan tombol ke window
        tombolNext.clicked.connect(self.perintahNext)  //menjalankan metode ‘perintahNext’ jika di klik

        tombolOpen = QtGui.QPushButton('open', self)  //membuat tombol pemilih file
        tombolOpen.setToolTip('open a video')  //memberikan tooltip saat cursor di atas tombol
        self.layout.addWidget(tombolOpen, 2, 2)  //memasukkan tombol ke dalam window
        tombolOpen.clicked.connect(self.perintahBuka)  //menghubungkan tombol untuk menjalankan metode ‘perintahBuka’ jika di klik

    def perintahBuka(self):  //metode ‘perintahBuka’
        dialog = QtGui.QFileDialog(self)  //membuka pemilih file
        dialog.setFileMode(QtGui.QFileDialog.ExistingFile)  //menentukan prilaku pembuka file
        if dialog.exec_() == QtGui.QDialog.Accepted:  //memastikan user memilih file
            self.path = dialog.selectedFiles()[0]  //mendapatkan lokasi file yang dipilih
            self.pemutarVideo.play(self.path)  //memutar video yang di pilih user

    def putarAtauPause(self):  //metode ‘putarAtauPause’
        if self.path :  //memastikan variabel ‘path’ tidak kosong
            if self.tombolPlay.text() == 'Play' :  //mengcek apakah teks tombol adalah ‘Play’
                self.tombolPlay.setText('Pause')  //mengubah teks tombol menjadi ‘Pause’
                self.pemutarVideo.play()  //memutar vieo
            else :  //jika teks tombol tidak sama dengan ‘play’
                self.pemutarVideo.pause()  //menjeda pemutar
                self.tombolPlay.setText('Play')  //mengubah teks tombol menjadi play
        else:  //jika variabel path kosong
            self.perintahBuka()  //menjalankan metode ‘perintahBuka’

    def perintahStop(self):  //metode ‘perintahStop’
        self.tombolPlay.setText('Play')  //mengubah teks tombol menajadi ‘play’
        self.pemutarVideo.stop()  //menghentikan pemutaran video

    def perintahPrevious(self):  //metode ‘perintahPrevious’
        try :  //mencoba beberapa code
            waktuPutar = self.pemutarVideo.currentTime()  //mendapatkan waktu putar video
            if waktuPutar > 5000 :  //memastikan waktu putar lwbih dari 5 detik (5000 mili detik)
                self.pemutarVideo.seek(waktuPutar-5000)  //memundurkan pemutaran sebanyak 5 detik (500milidetik)
        except :  //jika code try error
            pass //tidak melakukan apa apa

    def perintahNext(self):  //metode perintahNext
        waktuPutar = self.pemutarVideo.currentTime())  //mendapatkan waktu putar video
        waktuTotal = self.pemutarVideo.totalTime()  //mendapatkan durasi total video
        if waktuTotal-5000 > waktuPutar:  //memastiakan waktu total kurang dari 5 detik atau lebih dari durasi total
            self.pemutarVideo.seek(waktuPutar+5000)  //memajukan waktu putar video

    def closeEvent(self, event):  //metode yang akan di jalankan secara otomatis jika window di tutup
        self.destroy()  //menghancurkan pemutaran video (class pemutarVideo)

if __name__ == '__main__':  //agar di jalankan pertama kali saat file python dieksekusi
    import sys  //menngimport class sys dari python

    app = QtGui.QApplication(sys.argv)  //mendefinisikan window aplikasi
    window = PemutarVideo()  //menjalankan class ‘PemutarVideo’
    window.show()  //menampilkan window pemutar video

    sys.exit(app.exec_())  //agar window tidak langsung tertutup saat dijalankan


Nah itu dia temen - temen penjelasan code programnya.. Mohon maaf apabila ada penjelasan yang kurang jelas, atau bahkan ada kekeliruan... Mohon kasi pembenaran atau pendapat kalian di kolom komentar ya... Biar kita bisa belajar bersama..

Oke terimakasih dan sampai di sini dulu ya... Jangan lupa untuk membaca versi yang lain... Biar ilmunya nambah.. Hehe.. Temikasih sekali lagi dan sekian...

Wassalamualaikum wr. wb.

Previous
Next Post »
Thanks for your comment