[Résolu] Ajouter un chronomètre sur une diapo

Discussions sur le module de PréAO pour la réalisation de diaporamas sous Impress.

Modérateur : Vilains modOOs

MontrealFarmer
Fraîchement OOthentifié
Messages : 3
Inscription : 26 août 2022 16:58

[Résolu] Ajouter un chronomètre sur une diapo

Message par MontrealFarmer »

Bonjour à tous!

Je suis enseignante et utile Impress pendant mes cours et suis plutot satisfaite des nombreuses possibilités qu'offre le logiciel.

Seulement, je n'arrive pas a inserer un chronomètre (dans un coin d'une diapo, par exemple) pour permettre aux élèves de voir le temps qu'ils leur reste pour finir une activité.

Est-il donc possible ou non d'inserer un chronomètre (5, 10, 15minutes) sur Impress, et si oui, comment?!

Merci d'avance pour vos réponses!

[RESOLU] Utilisation d'un gif chronomètre de 5, 10, 15mins... Insertion -> Image et le tour est joué!
Dernière modification par micmac le 26 août 2022 20:04, modifié 2 fois.
Raison : [Résolu] remplace [RÉSOLU] + ajout de la coche verte tu
OpenOffice 4.1.13 Win 11
Avatar de l’utilisateur
tintin
GourOOu
GourOOu
Messages : 9366
Inscription : 18 juil. 2008 15:29
Localisation : F-Oise + F-Savoie

Re: Ajouter un chronomètre sur une diapo

Message par tintin »

Bonjour et bienvenue,

Impress permet l'affichage d'un chronomètre sur l'écran de contrôle lorsqu'on utilise un écran de projection.
Menu Outils > Options > OpenOffice > OpenOffice Impress > Général > Lancer la présentation > Avec Écran de présentation.
.
option_ecran_présentation.png
chrono.png
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
AOO 4.1.15 et LibO stable 7.6.6 / macOS Intel 13.6.6 Ventura
Adoptium-temurinJDK-jre_1.8.0_412 / Firefox/Safari/Thunderbird /Time Machine+cloneCCC
Tutoriels du forum pour macOS
Pour sauvegarder vos documents c'est ceinture ET bretelles
Avatar de l’utilisateur
yclik
HédOOniste
HédOOniste
Messages : 1667
Inscription : 15 déc. 2010 08:33

Re: Ajouter un chronomètre sur une diapo

Message par yclik »

Bonsoir
Une solution serait de créer un gif animé (créé avec gif animator par exemple) et l'incorporer comme une image dans la présentation
Il y a a peut être de disponible sur le net

pour créér le gif
faire un chrono image par image
exporter en gif
incorporer dans gifanimator

chrono.odp
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
OpenOffice 4.1.14 sous Windows 10
MontrealFarmer
Fraîchement OOthentifié
Messages : 3
Inscription : 26 août 2022 16:58

Re: Ajouter un chronomètre sur une diapo

Message par MontrealFarmer »

Bonjour,

Merci pour vos réponses, ce n'est pas vraiment ce dont j'ai besoin car je suis la seule a voir "l'écran de présentation" et j'aimerai plutot que le chronomètre soit directement sur la diapositive que les élèves peuvent voir.

Pour l'instant j'utilise une video de chronometre insérée directement sur la diapositive. C'est un peu contraignant car cette video est de longueur fixe (une video de 5mins, ou 10mins, je ne peux pas régler facilement le nombre de minutes), de plus elle doit se trouver dans le même fichier que le .odp (et j'ai une centaine de .odp, donc cela fait énormement de copie de la même video dans chaque dossier) et elle se lance dès que j'arrive sur la dispositive, je ne peux pas decider quand lancer le chronomètre ni mettre en pause.

Pour ce qui est du gif, j'ai besoin d'un chronomètre de 5minutes minimum et les gif sont limités à quelques secondes, je crois?

EDIT : Je viens de vérifier et au final j'ai réussi à trouver un gif de chronomètre de 5 mins, c'est parfait pour moi, merci beaucoup ! :super:
OpenOffice 4.1.13 Win 11
Avatar de l’utilisateur
yclik
HédOOniste
HédOOniste
Messages : 1667
Inscription : 15 déc. 2010 08:33

Re: [Résolu] Ajouter un chronomètre sur une diapo

Message par yclik »

Bonjour
peut être mettre ici une présentation avec le gif de 5 mn, cela pourrait servir à d'autres :D
OpenOffice 4.1.14 sous Windows 10
Avatar de l’utilisateur
Jurassic Pork
PassiOOnné
PassiOOnné
Messages : 629
Inscription : 09 août 2017 22:15

Re: [Résolu] Ajouter un chronomètre sur une diapo

Message par Jurassic Pork »

Hello,
MontrealFarmer a écrit : 26 août 2022 17:03 Est-il donc possible ou non d'inserer un chronomètre (5, 10, 15minutes) sur Impress, et si oui, comment?!
Voici une autre solution qui consiste à utiliser une boîte de dialogue non modale dans le bas à droite du diaporama qui affiche le temps qu'il reste (décompte par rapport à une valeur de départ).
Cela est réalisé en macro Basic.
Le principe :
1 - Dans la macro principale on crée un listener sur le diaporama pour pouvoir "écouter" les événements du diaporama
2 - On lance le diaporama
3 - On crée la boîte de dialogue (ici pour qu'elle soit "lier" à la fenêtre du diaporama) . On la positionne, on crée un listener dessus, on initialise la zone de texte de la fenêtre de dialogue avec le temps de départ .
4 - On affiche la boite de dialogue et on boucle en décrémentant à chaque seconde le compteur de temps.
5 - Si le compteur arrive à zéro il se bloque et le temps est affiché en rouge.

Remarque :
Le diaporama reste interactif malgré l'affichage de la boîte de dialogue (seul le click pour changer de diapo fonctionne sur la première Diapo voir ci-dessous).
On peut fermer la boîte de dialogue par la croix. On peut déplacer la boîte de dialogue.
On peut ajouter facilement des fonctionnalités au code (par exemple réinitialiser le compteur au changement de diapo). Jouer un son quand le temps arrive à zéro etc...

Il y a un souci pendant l'affichage de la première diapo : les événements clavier ne sont pas pris en compte. Après un clic souris pour changer de diapo, les événements clavier fonctionnent . Si quelqu'un a une idée pour résoudre le problème.

Code :

Code : Tout sélectionner

Dim oPres As Object     ' diaporama
Dim oDialog As Object  ' dialogue affichage temps
Dim CntrlTemps as Object  ' zone de texte affichage temps
Dim PresListener as Object ' Listener Diaporama
Dim temps as Date ' temps en cours
Dim bDialogShown As Boolean ' affichage dialogue

Sub LancerDiaporama()
    DialogLibraries.LoadLibrary("Standard")
   	oPres = ThisComponent.Presentation
   	PresListener = createUnoListener("PresListen_","com.sun.star.presentation.XSlideShowListener")
	oPres.Start()
	oPres.Controller.addSlideShowListener(PresListener)
	oDialog = CreateUnoDialog(DialogLibraries.GetByName("Standard").GetByName("DialogChrono"))
	oDialog.addTopWindowlistener(createUnoListener("TopListen_", "com.sun.star.awt.XTopWindowListener")) 
	oDialog.setPosSize(1700,950,0,0,3) ' position de la fenêtre de dialogue en bas à droite (écran 1900x1080)
	temps = TimeSerial(00,15,0) '  temps de départ 15 minutes
	CntrlTemps = oDialog.getControl("TextChrono")
	CntrlTemps.Text = Format(temps, "MM:SS")
	bDialogShown=True
	While bDialogShown And oPres.isRunning()
		oDialog.setVisible(bDialogShown)
		Wait 1000
		If Minute(temps) = 0 And Second(temps) = 0 then  
		   	CntrlTemps.Model.BackgroundColor    =  RGB(255,0,0)
		Else
		     CntrlTemps.Model.BackgroundColor    =  RGB(255,255,255)
		     temps = temps - TimeValue("00:00:01")
		End If
		CntrlTemps.Text = Format(temps, "MM:SS")
	Wend
	oDialog.dispose()
End Sub


Rem  Window Listener
Private Sub TopListen_WindowClosing
	bDialogShown = False
End Sub
Private Sub TopListen_windowOpened
End Sub
Private Sub TopListen_windowClosed
End Sub
Private Sub TopListen_windowMinimized
End Sub
Private Sub TopListen_windowNormalized
End Sub
Private Sub TopListen_windowActivated
End Sub
Sub  TopListen_windowDeactivated
End Sub
Private Sub TopListen_disposing
End Sub

Rem Presentation Listener
Private Sub PresListen_paused(oEv)
End Sub

Private Sub PresListen_resumed(oEv)
End Sub

Private Sub PresListen_slideTransitionStarted(oEv)
End Sub

Private Sub PresListen_slideEnded(oEv)
temps = TimeSerial(00,15,00) ' Recharger le temps pour la diapo suivante 
 CntrlTemps.Text = Format(temps, "MM:SS")
End Sub


Private Sub PresListen_disposing(oEv)
End Sub

Sub Dummy()
End Sub
ChronoImpress.PNG
Fichier en pièce jointe.

Ami calmant, J.P
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
LibreOffice 7.6.2.1 et OpenOffice 4.1.15 sous windows 11
LibreOffice 24.2.0 et OpenOffice 4.1.15 sous Ubuntu 20.04
Avatar de l’utilisateur
yclik
HédOOniste
HédOOniste
Messages : 1667
Inscription : 15 déc. 2010 08:33

Re: [Résolu] Ajouter un chronomètre sur une diapo

Message par yclik »

Bonjour
testé avec open office

ouverture du document
en lançant le diaporama (F5)
la diapo1 est affichée sans le chrono

si l'on crée un bouton lançant la macro
avec une seule diapo ( but recherché ?)

ouverture du document
clik sur le bouton
la diapo1 est affichée avec le chrono
ChronoImpressJP 1 diapo.odp
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
OpenOffice 4.1.14 sous Windows 10
MontrealFarmer
Fraîchement OOthentifié
Messages : 3
Inscription : 26 août 2022 16:58

Re: [Résolu] Ajouter un chronomètre sur une diapo

Message par MontrealFarmer »

Bonjour,

J'ai un peu de mal a comprendre pour les macros, c'est un peu loin de mon domaine de compétence :marto:

Pour ce qui est des gifs voici un lien avec plusieurs gif de differentes longueurs : https://imgur.com/gallery/SP8K3

Je les utilise ainsi par exemple : Sur la diapo n°5, j'explique une activité et ajoute l'apparition du gif au clic grâce a une animation personnalisée.
Comme ça mes élèves voient qu'ils leur reste 5mins pour faire le travail.

C'est "mieux que rien" mais c'est vrai qu'il y a un probleme majeur : le gif une fois arrivée à 00:00 recommence au début...
Dernière modification par Oukcha le 29 août 2022 04:12, modifié 1 fois.
Raison : url externe neutralisée
OpenOffice 4.1.13 Win 11
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 25184
Inscription : 03 mars 2006 07:45
Localisation : 127.0.0.1

Re: [Résolu] Ajouter un chronomètre sur une diapo

Message par Dude »

Salut,
MontrealFarmer a écrit : 28 août 2022 21:05 C'est "mieux que rien" mais c'est vrai qu'il y a un probleme majeur : le gif une fois arrivée à 00:00 recommence au début...
Un GIF a une propriété "boucle" qui permet de paramétrer le nombre de lectures possibles.
Il faut bien sûr un éditeur pour réaliser cette opération.
En ligne, il existe EzGIF par exemple.
Jeff
GourOOu
GourOOu
Messages : 9632
Inscription : 18 sept. 2006 09:40
Localisation : France

Re: [Résolu] Ajouter un chronomètre sur une diapo

Message par Jeff »

Bonjour à tous

Hors ligne, Gimp permet de régler le temps ainsi que le paramètre boucle.

A +
Avatar de l’utilisateur
Jurassic Pork
PassiOOnné
PassiOOnné
Messages : 629
Inscription : 09 août 2017 22:15

Re: [Résolu] Ajouter un chronomètre sur une diapo

Message par Jurassic Pork »

Hello,
Jurassic Pork a écrit : 28 août 2022 08:17 Il y a un souci pendant l'affichage de la première diapo : les événements clavier ne sont pas pris en compte. Après un clic souris pour changer de diapo, les événements clavier fonctionnent . Si quelqu'un a une idée pour résoudre le problème.
J'ai trouvé d'où venait le problème : la diapo n'a pas le focus au lancement. Pour supprimer le problème j'ai rajouté ces instructions juste avant la boucle du compteur :

Code : Tout sélectionner

FenDiaporama = ThisComponent.CurrentController.Frame.ContainerWindow
FenDiaporama.setFocus()
MontrealFarmer a écrit : 28 août 2022 21:05 J'ai un peu de mal a comprendre pour les macros, c'est un peu loin de mon domaine de compétence :marto:
on peut très bien utiliser des macros sans comprendre ce qu'il y a dedans. Et si cela ne fonctionne pas comme on le désire, on peut demander dans le forum de l'aide.
Voici le nouveau code qui ajoute quelques fonctionnalités :
1 - jouer un son quand le décompte est arrivé à zéro
2 - ajustement de l'emplacement du compteur en fonction de taille de la fenêtre de la diapo
3 - Le son joué (qui se trouve dans la galerie de sons de O.O ou A.O) et le temps de décompte sont mises en constante au début du code.
4 - La macro est lancé par un bouton sur la première diapo (situé à l'extérieur de la diapo pour ne pas qu'on le voit dès que le diaporama est lancé).

Code : Tout sélectionner

Dim oPres As Object     ' diaporama
Dim oDialog As Object  ' dialogue affichage temps
Dim CntrlTemps as Object  ' zone de texte affichage temps
Dim PresListener as Object ' Listener Diaporama
Dim temps as Date ' temps en cours
Dim bDialogShown As Boolean ' affichage dialogue
Dim NbDiapos As Integer
Dim FenDiaporama as Object
Dim oPlayer1 As Object
Dim SonActive As Boolean
Const Duree = "00:00:20" ' <heure>:<minutes>:<secondes> 
Const Son = "gong.wav"

Sub LancerDiaporama()
    On Error Goto ErrorHandler
    DialogLibraries.LoadLibrary("Standard")
   	oPres = ThisComponent.Presentation
   	PresListener = createUnoListener("PresListen_","com.sun.star.presentation.XSlideShowListener")
	oPres.Start()
	Wait 500
	FenDiaporama = ThisComponent.CurrentController.Frame.ContainerWindow
    NbDiapos = oPres.Controller.getSlideCount()
    'oButton =    oPres.Controller.currentSlide.Forms.getByIndex(0).getByName("BtGo")
    'ThisComponent.CurrentController.getControl(oButton).setVisible(False)
	oPres.Controller.addSlideShowListener(PresListener)
	'oPres.Activate()
	oDialog = CreateUnoDialog(DialogLibraries.GetByName("Standard").GetByName("DialogChrono"))
	oDialog.addTopWindowlistener(createUnoListener("TopListen_", "com.sun.star.awt.XTopWindowListener"))
	PosDialogX = FenDiaporama.PosSize.Width - oDialog.PosSize.Width - 50 
	PosDialogY = FenDiaporama.PosSize.Height - oDialog.PosSize.Height - 50 
	oDialog.setPosSize(PosDialogX,PosDialogY,0,0,3) ' position de la fenêtre de dialogue en bas à droite (écran 1900x1080)
	temps = TimeValue(Duree) '  temps de départ 15 minutes
	CntrlTemps = oDialog.getControl("TextChrono")
	CntrlTemps.Text = Format(temps, "MM:SS")
	bDialogShown = True
	SonOn = True
	oDialog.setVisible(bDialogShown)
	FenDiaporama.setFocus()
	While bDialogShown And oPres.isRunning()
		oDialog.setVisible(bDialogShown)
		Wait 1000
		If Minute(temps) = 0 And Second(temps) = 0 then  
		   	CntrlTemps.Model.BackgroundColor    =  RGB(255,0,0)
		   	If SonOn Then 
		   	   JouerSon()
		   	   SonOn = False
		   	End If
		Else
		     CntrlTemps.Model.BackgroundColor    =  RGB(255,255,255)
		     temps = temps - TimeValue("00:00:01")
		     SonOn = True
		End If
		CntrlTemps.Text = Format(temps, "MM:SS")
	Wend
	oDialog.dispose()
	Exit Sub
ErrorHandler:
     MsgBox "Error " & Err & ": " & Error$ & " (line : " & Erl & ")"
End Sub


Rem  Window Listener
Private Sub TopListen_WindowClosing
	bDialogShown = False
End Sub
Private Sub TopListen_windowOpened
End Sub
Private Sub TopListen_windowClosed
End Sub
Private Sub TopListen_windowMinimized
End Sub
Private Sub TopListen_windowNormalized
End Sub
Private Sub TopListen_windowActivated
End Sub
Sub  TopListen_windowDeactivated
End Sub
Private Sub TopListen_disposing
End Sub

Rem Presentation Listener
Private Sub PresListen_paused(oEv)
End Sub

Private Sub PresListen_resumed(oEv)
End Sub

Private Sub PresListen_slideTransitionStarted(oEv)
End Sub

Private Sub PresListen_slideEnded(oEv)
 temps = TimeValue(Duree) ' Recharger le temps pour la diapo suivante
 CntrlTemps.Model.BackgroundColor    =  RGB(255,255,255) 
 CntrlTemps.Text = Format(temps, "MM:SS")
End Sub


Private Sub PresListen_disposing(oEv)
 'oButton.setVisible(True)
End Sub

Sub JouerSon()
  Dim oSounMgr As Object, oSfa As Object
  Dim sBaseUrl As String, SSound1 As String
  If GetGuiType() = 1 Then
   oSounMgr = CreateUnoService("com.sun.star.media.Manager_DirectX")
  Else
   oSounMgr = CreateUnoService("com.sun.star.media.Manager_GStreamer")
  End If
  If NOT IsNull(oSounMgr) Then
    oSfa = CreateUnoService("com.sun.star.ucb.SimpleFileAccess")
    sBaseURL = CreateUnoService("com.sun.star.util.PathSubstitution")._
        substituteVariables("$(inst)/share/gallery/sounds", True)
    
    sSound1 = sBaseURL & "/" & Son
    If oSfa.exists(sSound1) Then
    oPlayer1 = oSounMgr.createPlayer(sSound1)
    'oPlayer1.setRate(1.1)
    oPlayer1.setPlaybackLoop(False)
    oPlayer1.setMediaTime(0.0)
    oPlayer1.setVolumeDB(GetSoundVolume())
     oPlayer1.start()
    End If
  End If
End Sub
chronoImpressJP2.PNG
decompte.gif

Ami calmant, J.P
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
LibreOffice 7.6.2.1 et OpenOffice 4.1.15 sous windows 11
LibreOffice 24.2.0 et OpenOffice 4.1.15 sous Ubuntu 20.04