Calificación:
  • 0 voto(s) - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5
Consulta sobre: Reproductor de video simple con PyQt 4 y 5
#4
Estuve probando muchos codigos, esto es para que veas que no soy un "comodo" que espera que le solucionen todo.

Código:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
#
#       videoplayer.py
#
#       Copyright 2016 Recursos Python - www.recursospython.com
#
#


import sys

from PyQt4.QtCore import QEvent
from PyQt4.QtGui import (QApplication, QHBoxLayout, QMainWindow, QWidget, QPushButton, QVBoxLayout)
from PyQt4.phonon import Phonon

from PyQt4.QtCore import *
from PyQt4.QtGui import *

from PyQt4 import phonon
from PyQt4 import QtGui
from PyQt4 import QtCore

import threading

# Ruta del archivo.
#VIDEO_PATH = "video.wmv"
VIDEO_PATH = "1.avi"


class MainWindow(QMainWindow):
       
   def __init__(self):
       QMainWindow.__init__(self)
       
       # Controles principales para organizar la ventana.
       self.widget = QWidget(self)
       self.layout = QVBoxLayout()
       self.bottom_layout = QHBoxLayout()
       
       # Control de reproducción de video de Qt.
       self.video_player = Phonon.VideoPlayer(Phonon.VideoCategory, self)
       

       # Acomodar controles en la pantalla.
       self.layout.addWidget(self.video_player)

       
       # Se utiliza installEventFilter() para capturar eventos
       # del mouse en el control de video que utiliza internamente
       # la clase Phonon.VideoPlayer.
       self.video_player.videoWidget().installEventFilter(self)
       
       # Personalizar la ventana.
       self.setWindowTitle("::Reproductor de video::")
       self.resize(400, 200)
       self.layout.setMargin(0)#borde del video
       self.bottom_layout.setMargin(0)
       self.widget.setLayout(self.layout)
       self.setCentralWidget(self.widget)

       # Reproducir el archivo.
       self.video_player.play(Phonon.MediaSource(VIDEO_PATH))
       self.video_player.seek(12000)
       
       self.video_player.mediaObject().finished.connect(self.finished)
       
       print(from_milliseconds(self.video_player.currentTime()))
       #print(from_milliseconds(self.video_player.totalTime()))
       self.ca = self.video_player.currentTime()
       setInterval(self,foo,1)
       #setInterval(foo,1)
   
       
       #PLAY TO VIDEO
       #self.video_player.play()
   def finished(self):
       print("terminado.")
       print(self.video_player.totalTime())
       self.video_player.play()
       self.video_player.seek(3000)
       
       print(from_milliseconds(self.video_player.totalTime()))
       
#Funcion para contar tiempo video
def from_milliseconds(ms):
   x = ms/1000
   seconds = x%60
   x /= 60
   minutes = x%60
   x /= 60
   hours = x%24
   return "{:02}:{:02}:{:02}:".format(hours, minutes, seconds)

def setInterval(this,func,time):
   e = threading.Event()
   while not e.wait(time):
       func(this)
def foo(this):
       print(this.ca)
       print("hello")    
   

if __name__ == "__main__":
   app = QApplication(sys.argv)
   window = MainWindow()
   #window.showFullScreen()
   window.show()
   sys.exit(app.exec_())

Esto seguramente este mal porque la ultima parte del codigo creo que la estoy dejando fuera de la clase pero aun asi logre hacer una función del tipo setInterval como lo hace JavaScript, le envió también un parametro con el scope de la clase principal pero el resultado de totalTime() por algún motivo es siempre 0.
 
Seguramente debo estar cerca pero aun no lo logro, estos son lo momentos cuando uno quiere revolear todo pero así me paso con c++, action script, php, entre otros lenguajes hasta que le tome la mano.

Te agradezco si me corregís los errores, principalmente del post anterior. Quiero aprender!!!

Muchas gracias!
Responder


Mensajes en este tema
RE: Consulta sobre: Reproductor de video simple con PyQt 4 y 5 - por luquio2008 - 09-05-2017, 03:06 AM

Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)