Gambas France BETA


Pas de compte ? Incription

Lire des vidéos en boucle via mplayer

1
AuteurMessages
ivan_r#1 Posté le 20/3/2012 à 09:44:31
Bonjour à tous,

Je cherche à lire des vidéo en boucle dans un programme sous Gambas 2.

J'utilise des contrôles DrawingArea dans lesquelles je fais tourner mplayer comme suit:

dim d as drawingArea
dim s as string
dim h as process

d=new drawingArea()

+ le code pour positionner la drawingArera

s=subs("maplyer -wid &1 &2 -loop 0, d.handle, conv$("mon_fichier_video_à_lire",desktop.charset))

h=exec s for read write

Mon problème est que les vidéo se bloquent au bout de 3 ~ 4 boucles.

Par contre, si j'arrête le programme gambas, mplayer se remet à tourner (plus d'image, normal, mais j'ai à nouveau le son et les boucles continuent)...

Si une âme charitable a une idée, qu'elle n'hésite pas !





Utilisateur de Gambas 3.5.4 sur EEEPC sous Debian, linutop 5 sous Ubuntu à la sauce Linutop, carte Radxa sous Ubuntu
Prokopy#2 Posté le 20/3/2012 à 18:28:42
Kinder PinguiSalut ivan_r,

Dans Gambas il y a un exemple "MoviePlayer" qui utilise mplayer pour lire les vidéos.

Pour lancer mplayer il utilise la ligne suivante :

1
$Process = EXEC ["mplayer", "-wid", drawArea1.Handle, Conv$("chemin_video", Desktop.Charset, System.Charset)] FOR READ WRITE


Voilà. ;)
La théorie, c'est quand on sait tout et que rien ne fonctionne.
La pratique, c'est quand ça marche mais qu'on ne sait pas pourquoi.
Quand la théorie rejoint la pratique, rien ne fonctionne et on ne sait pas pourquoi.
ivan_r#3 Posté le 21/3/2012 à 08:04:09
Meric de ta réponse mais avec cette ligne de code, la vidéo ne tourne pas en boucle...

Si j'ajoute -loop 0 dans la chaîne, la vidéo se bloque au bout de 2 ~ 3 diffusions.
Utilisateur de Gambas 3.5.4 sur EEEPC sous Debian, linutop 5 sous Ubuntu à la sauce Linutop, carte Radxa sous Ubuntu
gambix#4 Posté le 21/3/2012 à 17:50:28
Faire simple !$Process = EXEC ["mplayer", "-wid", drawArea1.Handle, "-loop", "0", Conv$("chemin_video", Desktop.Charset, System.Charset)] FOR READ WRITE
Moins de texte dans une signature c'est agrandir son espace.
ivan_r#5 Posté le 16/1/2014 à 15:06:02
9 mois plus tard, le temps d'une gestation, ça marche !

En passant, Gambas3 tourne sur ARM (carte Olimex)
Utilisateur de Gambas 3.5.4 sur EEEPC sous Debian, linutop 5 sous Ubuntu à la sauce Linutop, carte Radxa sous Ubuntu
ivan_r#6 Posté le 3/10/2014 à 23:40:42
En Gambas3 (3.4.5), j'ai du amménagé le code:

$Process = EXEC ["mplayer", "-wid", drawArea1.Handle, "-loop", "0", Conv$("chemin_video", Desktop.Charset, System.Charset)] FOR READ WRITE

devient

$Process = EXEC ["mplayer", "-wid", drawArea1.Handle, Conv$("chemin_video", Desktop.Charset, System.Charset),'-loop','0'] FOR READ WRITE

sinon, la deuxième lecture ne demarre pas, la lecture du READ renvoit quelques lignes d'init de mplayer en boucle

J'ai du également ajouter un SLEEP 0.5 juste apres la ligne $Process... sinon mplayer s'ouvre et se ferme immédiatement.
Utilisateur de Gambas 3.5.4 sur EEEPC sous Debian, linutop 5 sous Ubuntu à la sauce Linutop, carte Radxa sous Ubuntu
1