⌘K
- conversion_path Parcours & Formations
- science Projets
- data_object Exercices de code
- psychology Exercices IA
- quiz Quiz
- rss_feed Blog
- sort_by_alpha Glossaire
- menu_book Guides
- help_center FAQ
- media_link Ressources
- groups La communauté
- forum Questions
- live_tv Mentorats
Formations
Articles
Communauté

La certification qualité a été délivrée pour la catégorie d'actions « Actions de formation ».
⌘K
- conversion_path Parcours & Formations
- science Projets
- data_object Exercices de code
- psychology Exercices IA
- quiz Quiz
- rss_feed Blog
- sort_by_alpha Glossaire
- menu_book Guides
- help_center FAQ
- media_link Ressources
- groups La communauté
- forum Questions
- live_tv Mentorats
Formations
Articles
Communauté

La certification qualité a été délivrée pour la catégorie d'actions « Actions de formation ».
Deviens membre Premium magic_button
Débloque cette session en devenant Membre Premium 🚀
Inscris-toi
(c'est gratuit !)
Un compte est nécessaire pour participer aux discussions.
Créer un compte person00:00:00 :Dans cette partie on va créer la méthode qui va nous permettre d'ouvrir une fenêtredans laquelle on pourra sélectionner le fichier mp4 que l'on veut ouvrir dans notre lecteur multimédia.
00:00:10 :Donc cette méthode on va l'appeler tout simplement open, on va la mettre tout à la fin ici après setup connections.Donc on va la créer, pour l'instant je vais mettre pass dedans,et on va devoir importer juste un autre module ici tout en haut qui va s'appeler qtCore.
00:00:25 :Donc qtCore ça va nous permettre d'aller chercher des variables, des constantes en fait,qui vont nous permettre de savoir où se trouve sur l'ordinateur de l'utilisateur le dossierdans lequel se trouvent généralement les fichiers multimédia.
00:00:40 :Donc ça, ça va être là encore dépendant du système d'exploitation que vous utilisez,donc ça va être différent sur Mac, sur Windows et sur Linux,et c'est pratique puisque comme ça avec la même ligne de code on va pouvoir retrouver ce dossier.
00:00:52 :Donc pour ça on a besoin de qtCore, donc on va l'apporter tout de suite ici tout en haut,et je vais également appeler ma méthode puisque pour l'instant on n'a pas encore fait les connexionsentre les widgets et les méthodes, donc pour l'instant je vais juste appeler ma méthode ici
00:01:06 :pour qu'on puisse la tester, donc tout de suite au dessus je vais mettre self openpour lancer ma méthode open dès qu'on va lancer l'application.
00:01:13 :Comme ça on va pouvoir faire des tests et voir si ça fonctionne ou pas,et plus tard on lira l'action ici open à cette méthode open.
00:01:21 :Donc on fera ça dans la prochaine partie.Donc cette méthode open, la première chose qu'on va devoir faire à l'intérieurc'est créer ce qu'on appelle un QFileDialog,donc c'est une fenêtre dans laquelle on va pouvoir aller sélectionner un fichier qu'on veut ouvrir.
00:01:35 :Donc je vais faire une variable que je vais appeler fileDialog iciqui va être égale à qtWidget.QFileDialog.On va donner un parent à ce QFileDialog et ce parent ça va être tout simplement notre fenêtre actuelle.
00:01:47 :On va ensuite setter ce qu'on appelle les MIME Types,donc en fait c'est un filtre qui va permettre à l'utilisateur de ne sélectionner que les fichiers d'un certain type.
00:01:56 :Donc là dans ce cas-ci ça va être les fichiers vidéo de type mp4.Donc on va faire fileDialog et la méthode s'appelle setMIMETypeFilterset on va lui passer une liste, puisqu'on pourrait lui passer plusieurs éléments.
00:02:09 :On pourrait lui dire par exemple je veux que tu puisses sélectionner des fichiers textes,et des fichiers JSON et des fichiers PDF par exemple.Nous dans ce cas-ci ça va être uniquement des fichiers vidéo.
00:02:19 :Donc on va mettre dans les guillemets ici le type de fichier qu'on veut permettre de sélectionner,et dans ce cas-ci ça va être un type de fichier vidéo,et on va mettre un slash pour spécifier qu'on veut uniquement pouvoir sélectionner des fichiers de type mp4.
00:02:33 :Donc ça c'est pour ce qu'on appelle les MIME Types, donc c'est tout simplement un filtre.Et ensuite on va récupérer dans une variable le dossier qui correspond au dossier sur macmovies,qui est le dossier de base dans lequel se trouvent généralement des vidéos.
00:02:46 :Sur Windows ça va être le dossier vidéo, et sur Linux, je ne suis pas sûr, mais ça va être l'équivalent.Donc on va faire une variable qu'on va appeler MoviesDir, et alors là on va utiliser QtCore.
00:02:56 :Donc dans QtCore on a une classe qui s'appelle QStandardPath,et à l'intérieur de cette classe on va avoir une méthode qui s'appelle WritableLocation,qui va nous permettre de récupérer des endroits à l'intérieur desquels généralement on peut écrire des choses.
00:03:11 :Il y a différentes méthodes que vous pouvez utiliser en fait dans les locations.Si on fait location, vous voyez ici par exemple DesktopLocation, Documents, Downloads,donc vous avez plein plein plein de choses ici qu'on peut aller chercher,et nous on va avoir donc ici la méthode WritableLocation,et cette méthode on va lui passer une constante qui va correspondre au dossier Movies.
00:03:32 :Donc on va faire QtCore.QStandardPath, et on va lui passer MoviesLocation.Donc MoviesLocation c'est le dossier dans lequel se trouvent les fichiers vidéo.Donc ça, ça va nous retourner le dossier des Movies, et on va pouvoir le setter sur notre FileDialog.
00:03:47 :Donc pour ça on va faire FileDialog.SetDirectory, et on va lui passer notre dossier donc MoviesDir.Donc comme ça quand on va lancer le FileDialog, automatiquement il va démarrer à l'intérieur de ce fichier,puisque par défaut je crois que ça se retrouverait dans votre dossier utilisateur ou sur le bureau par exemple.
00:04:04 :Donc là on va pouvoir forcer automatiquement à chaque fois qu'on ouvre le FileDialog,à faire en sorte qu'il s'ouvre dans le dossier vidéo.On va ensuite, sur la même ligne, exécuter notre FileDialog,et vérifier si l'utilisateur a accepté ou non le FileDialog.
00:04:19 :Donc en fait il va avoir plusieurs options, on peut sélectionner un fichier et accepter,et dans ce cas-ci, notre structure conditionnelle va être vérifiée,et on va ajouter un média, donc dans ce cas-ci une vidéo MP4, dans notre player.
00:04:31 :Ou alors si l'utilisateur décide finalement de se raviser, de fermer le FileDialog,et bien la condition ne sera pas vérifiée et on ne fera rien jouer.
00:04:39 :Donc on va à la fois faire FileDialog.exec et la structure conditionnelle,donc c'est-à-dire que si je fais juste ça, et bien ça va ouvrir le FileDialog,mais moi je vais en plus mettre une structure conditionnelle ici pour vérifier que cette exécution,donc ça ici, c'est égal à QtWidgets.qDialog,
00:04:57 :et là on va avoir une variable Accepted.Donc si l'exécution ici du FileDialog est égale à QtWidgets.qDialog.Accepted,ça veut dire que l'utilisateur aura accepté, aura validé en fait, et choisi un fichier.
00:05:11 :Donc si c'est vrai, et bien on va récupérer le chemin complet vers le fichier qui a été sélectionné.Donc ça on va le récupérer à partir de notre FileDialog.
00:05:19 :On va avoir une méthode qui va s'appeler SelectedURLs, donc comme ceci,et donc ça c'est le chemin complet de tous les fichiers qui vont avoir été sélectionnés par l'utilisateur.
00:05:29 :Nous on ne veut jouer qu'une seule vidéo,donc on va récupérer tout simplement le premier élément de cette liste,puisque ça va nous retourner une liste, vous voyez ici que URL est au pluriel,donc c'est une liste, et nous on veut récupérer uniquement le premier fichier qui a été sélectionné.
00:05:43 :Donc on récupère l'indice 0, et on va mettre tout ça dans une variable que je vais appeler par exemple Movie.La seule chose qui reste à faire c'est donc de mettre ce Movie,donc de mettre ce fichier dans notre player multimédia,et ensuite de faire jouer ce player.
00:05:56 :Donc on va faire self.player.setMedia,et on va lui passer, alors là j'ai fait une petite faute de frappe,voilà player.setMedia, et on va lui passer donc le chemin complet qu'on a récupéré à la ligne précédente.
00:06:08 :On va ensuite faire self.player.play, tout simplement pour lancer la vidéo,donc pour la faire jouer dans notre lecteur.Donc voilà pour la méthode Open, donc on va pouvoir la tester directement.
00:06:19 :Alors je vais cliquer sur Launch, là dans la méthode Init on l'appelle notre méthode Open,donc automatiquement quand on lance l'application pour l'instant,on va avoir normalement cette fenêtre qui va nous permettre de sélectionner une vidéo.
00:06:29 :Donc je clique sur la petite flèche ici, et automatiquement vous voyez qu'on a donc cette fenêtre qui s'ouvre.Alors pour l'instant vous voyez qu'on est dans le dossier Root,alors c'est normal puisque PyCharm je l'ai lancé en mode administrateur,et donc l'utilisateur qui est reconnu actuellement c'est l'utilisateur de l'administrateur.
00:06:46 :Normalement ça va se retrouver, alors c'est pas Pictures, c'est Movies,qui doit être quelque part ici, voilà Movies.Donc normalement si j'ouvre le programme avec mon utilisateur normal,il va se retrouver à l'intérieur de ce dossier Movies.
00:07:00 :Donc j'ai une vidéo que je vais vous fournir avec la formation,qu'on va utiliser pour vérifier que ça fonctionne,donc je la sélectionne, je clique sur Open,alors là vous voyez qu'il y a plein de messages d'erreurs,donc comme je vous disais c'est pas forcément toujours problématique.
00:07:13 :Donc là je fais juste sélectionner la vidéo et je clique sur Open.Si on clique sur Cancel, et bien la condition ne sera pas vérifiée,la condition dans laquelle on a vérifié que FileDialog.exec
00:07:23 :était bien égale à QtWidgets.QDialog.accepted,elle ne sera pas vérifiée.Si je clique sur Open, par contre c'est vérifié,on va récupérer donc le chemin complet vers ce fichier qui est sélectionné,le mettre dans le lecteur multimédia et le faire jouer.
00:07:36 :Donc je clique sur Open, et là on a en fait,puisqu'ici on a mis notre méthode Open avant le SetupUI,donc forcément Self.Player n'est pas défini.
00:07:48 :Donc là c'est ce qu'il nous dit,donc je vais le mettre après le SetupUIpour que ce multimédia player soit créé ici dans le QtWidgetset qu'on puisse faire jouer la vidéo.