Ce sujet est résolu.
12 | |||||
Auteur | Messages | ||||
---|---|---|---|---|---|
vuott | #16 Posté le 31/7/2024 à 09:32:48 | ||||
Ne cedere ineluctabili possimus | Pour certaines adresses cela marche bien : Oui. « Vita non suavis esse potest, nec Mors amara. » | ||||
vuott | #17 Posté le 31/7/2024 à 09:35:01 | ||||
Ne cedere ineluctabili possimus | Je peux ajouter ce bout de code dans le code général de mon logiciel ? Tu parles de VLC ? Il fonctionne certainement avec les ressources du Composant gb.media. « Vita non suavis esse potest, nec Mors amara. » | ||||
valaquarus | #18 Posté le 31/7/2024 à 09:51:03 | ||||
-- Unus Ex Altera -- | J'ai changé : Library "libvlc:5.6.1" qui provoquait une erreur par Library "libvlc:5" et je n'ai pas d'erreur mais rien ne s'affiche mais rien ne bloque le programme même si celui-ci ne se ferme pas correctement. Système d'exploitation : KDE neon 6.0 ~ Version Gambas : 3.19.5 | ||||
vuott | #19 Posté le 31/7/2024 à 09:52:25 | ||||
Ne cedere ineluctabili possimus | Voici un code possible avec les classes "MediaPipeline" et "MediaControl" du composant gb.media: Private pl As MediaPipeline Private bo As Boolean Public Sub Button1_Click() Dim src, vcon, vsnk, asrc, acon, ares, asnk As MediaControl Dim filevideo As String filevideo = "http://web.onair-radio.eu:1935/Alpha-Host/Alpha-Host/playlist.m3u8" pl = New MediaPipeline As "PLine" ' Définissez les éléments MediaControl nécessaires pour la partie vidéo: src = New MediaControl(pl, "uridecodebin") src["uri"] = filevideo vcon = New MediaControl(pl, "videoconvert") vsnk = New MediaControl(pl, "ximagesink") src.LinkLaterTo(vcon) vcon.LinkTo(vsnk) ' Configure les éléments MediaControl nécessaires pour la partie audio: asrc = New MediaControl(pl, "uridecodebin") asrc["uri"] = filevideo acon = New MediaControl(pl, "audioconvert") ares = New MediaControl(pl, "audioresample") asnk = New MediaControl(pl, "autoaudiosink") asrc.LinkLaterTo(acon) acon.LinkTo(ares) ares.LinkTo(asnk) ' Définir la surface graphique où afficher la vidéo: vsnk.SetWindow(DrawingArea1) pl.Play() While Not bo Wait 0.01 Wend pl.Close End Public Sub PLine_Position() ' Affiche le temps écoulé depuis le démarrage de la vidéo: Me.Title = "Tempus regit actum: " & Format(Time(0, 0, 0, pl.Position * 1000), "hh:nn:ss") End Public Sub PLine_End() ' Cet événement est déclenché, lorsque la conversion est terminée bo = True End « Vita non suavis esse potest, nec Mors amara. » | ||||
vuott | #20 Posté le 31/7/2024 à 10:05:26 | ||||
Ne cedere ineluctabili possimus | ...en utilisant la classe "MediaPlayer" du composant gb.media: Public Sub ToggleButton1_Click() Dim mp As MediaPlayer mp = New MediaPlayer With mp .URL = "http://web.onair-radio.eu:1935/Alpha-Host/Alpha-Host/playlist.m3u8" .SetWindow(DrawingArea1) .Play End With While ToggleButton1.Value Write "\rtemps écoulé: " & Str(Time(0, 0, 0, mp.Position * 1000)) Wait 0.01 Wend mp.Stop mp.Close End « Vita non suavis esse potest, nec Mors amara. » | ||||
valaquarus | #21 Posté le 31/7/2024 à 10:16:42 | ||||
-- Unus Ex Altera -- | J'utilise déjà la class MediaPlayer dans LecteurMultiBase2, d'ailleurs pour cette adresse j'ai un bel écran tout vert avec le son qui fonctionne très bien. Je pense que c'est une question de délai dans le plugin de gstreamer mais je ne sais pas le régler automatiquement pour qu'il s'adapte de lui-même. Juste pour mémoire, ceci ne fonctionne que dans le cas des vidéos ou des morceaux de musique avec une durée définie :
dans le cas de flux continus, radios ou télévisions la durée est à zéro : MediaPlayer.Duration = 0 et il faut faire autrement. Du style :
Système d'exploitation : KDE neon 6.0 ~ Version Gambas : 3.19.5 | ||||
vuott | #22 Posté le 31/7/2024 à 19:27:11 | ||||
Ne cedere ineluctabili possimus | Juste pour mémoire, ceci ne fonctionne que dans le cas des vidéos ou des morceaux de musique avec une durée définie : Ehmmm....pas dans mon exemple (que j'ai modifié depuis); c'est l'inverse, puisqu'à la fin de la vidéo, la variable booléenne ne devient jamais « true ». Ceci est possible si l'on pose ce sous-programme:
Exemplum: Private bo As Boolean Public Sub Button1_Click() Dim mp As MediaPlayer mp = New MediaPlayer As "MediaPl" With mp .URL = Media.URL("/chemin/du/fichier/vidéo") ' Exécute un FICHIER vidéo: .SetWindow(DrawingArea1) .Play End With Repeat Write "\rtemps écoulé: " & Str(Time(0, 0, 0, mp.Position * 1000)) Wait 0.01 Until bo mp.Stop mp.Close Me.Close End Public Sub MediaPl_End() bo = True End « Vita non suavis esse potest, nec Mors amara. » | ||||
valaquarus | #23 Posté le 1/8/2024 à 14:06:23 | ||||
-- Unus Ex Altera -- | Pour clore ce chapitre et passer à autre chose ; deux images de la même station de télé avec une latence de deux secondes entre les deux pour voir apparaître l'image en lieue et place de l'écran vert : alors que pour d'autre adresses l'écran reste vert même si j'ai le son, pas très compréhensible pour ma petite tête. Système d'exploitation : KDE neon 6.0 ~ Version Gambas : 3.19.5 | ||||
12 |