Comunidad Gambas-es

Versión completa: ¿Como obtener segundos en MediaView?
Actualmente estas viendo una versión simplificada de nuestro contenido. Ver la versión completa con el formato correcto.
buenas,

estoy viendo como puedo hacer un archivo de texto con comentarios sobre un video determinado.
voy a usar como llave o titulo la posición actual del video en segundos.
pero la cuestión es como obtener el tiempo actual que se visualiza en el mediaview

ejemplo : 00:02:45/00:10:34

como puedo obtener los: 00:02:45  ???

alguien sabe como obtener estos datos?
en sdl2 Music.pos te da la posición en segundos o milisegundos, no recuerdo.
Tal vez mediaview tenga algo similar.
Saludos.
(25-08-2020, 22:44)tincho escribió: [ -> ]... la posición en segundos o milisegundos...
Tal vez mediaview tenga algo similar.

...tincho, ma allora sei Onnipotente pure tu !
Mi vuoi sfidare ?
   Big Grin Tongue

Bueno, ...exactamente, todo está come has dicho tincho.
El Objeto MediaView es un po'... Confused rígido; de todas formas yo te doy este exemplum simplex:

GAMBAS
  1. Public Sub Form_Open()
  2.  
  3.   With MediaView1
  4.     .URL = Media.URL("/ruta/del/archivo/Audio o Midi o Video")
  5.    
  6. ' Espera a que se inicie la ejecución del archivo cargado:
  7.     Repeat
  8.       Wait 0.01
  9.     Until MediaView1.Position > 0
  10.  
  11. '  Muestra en consola el tiempo transcurrido desde el inicio de la ejecución del archivo (Audio o Midi o Video):
  12.     Repeat
  13.       Write "\r\e[31m" & Str(Date(0, 0, 0, 0, 0, 0, .Position * 1000))
  14.       Wait 0.001
  15.     Until .Position >= .Duration
  16.  


...está claro que en un proyecto real y más complejo es mejor usar un Objeto Timer en lugar de un bucle.
Hace falta tambien penetrar en la constitución interna del Objeto MediaView.

Exemplum simplex:

GAMBAS
  1.  
  2.  
  3. Public Sub Form_Open()
  4.  
  5.  
  6.  ob = MediaView1.Children[0]
  7.  ob = ob.Children[0]
  8.  ob = ob.Children[3]
  9.  
  10. ' Usamos la Clase "Observer" para no interferir (sustituyéndo)
  11. ' con los eventos originales de los botones de inicio y stop de "MediaView":
  12.  obs = New Observer(ob.Children[0], False) As "Inicio"
  13.  obs = New Observer(ob.Children[1], False) As "Stop"
  14.  
  15.  MediaView1.URL = Media.URL("/ruta/del/archivo/audio o midi o video")
  16.  
  17.  
  18. Public Sub Inicio_Click()
  19.  
  20.   With tempus = New Timer As "Tempus"
  21.     .Delay = 100
  22.     .Start
  23.  
  24.  
  25. Public Sub Tempus_Timer()
  26.  
  27.   Label1.Text = Str(Date(0, 0, 0, 0, 0, 0, MediaView1.Position * 1000))
  28.  
  29.  
  30. Public Sub Stop_Click()
  31.  
  32.   Label1.Text = Null
  33.   tempus.Stop
  34.  


(26-08-2020, 01:59)vuott escribió: [ -> ]
(25-08-2020, 22:44)tincho escribió: [ -> ]... la posición en segundos o milisegundos...
Tal vez mediaview tenga algo similar.
...tincho, ma allora sei Onnipotente pure tu !
Mi vuoi sfidare ?
   Big Grin Tongue
Non avrò mai il tuo livello, maestro.
Saludos.
(26-08-2020, 13:00)tincho escribió: [ -> ]Non avrò mai il tuo livello, maestro.

Caro tincho, se io avessi una risposta a tutto, non lancerei sfide, ma insegnerei Teologia a Parigi. Sleepy

[Imagen: images?q=tbn%3AANd9GcQlofnS7LWoVY23HP-IO...g&usqp=CAU]
gracias vuott, es lo que andaba buscando

Write "\r\e[31m" & Str(Date(0, 0, 0, 0, 0, 0, .Position * 1000))

esa es la linea fundamental
(26-08-2020, 17:49)kokodrilo escribió: [ -> ]Write "\r\e[31m" & Str(Date(0, 0, 0, 0, 0, 0, .Position * 1000))

esa es la linea fundamental

Bueno, recuerda que esta instrucción  \e[31m  atribuye el color rojo al texto impreso en la consola.