Maison >développement back-end >Tutoriel Python >Explication détaillée de la solution d'erreur lors du chargement de fichiers mp3 avec des noms chinois dans Pygame
#pygame lit les fichiers mp3 :
Ici, l'auteur présente uniquement une méthode facile à comprendre
Ouvrez le document officiel, et j'ai trouvé que, comme la découverte Comme le Nouveau Monde, ce type est trop puissant, et maintenant je ne peux l'utiliser que pour lire mes mp3. Eh bien, le reste attendra d'être découvert plus tard, voici un code de test pour lire des mp3. :
import pygame path = 'Pam Pam - Noel Toto.mp3'pygame.mixer.init() pygame.mixer.music.load(path) pygame.mixer.music.play()
Parmi eux, path représente le chemin et le nom du fichier mp3 à lire. Ici, l'auteur utilise le ralenti d'origine, qui peut lire le mp3 normalement
Ensuite, il y a le problème que l'auteur a rencontré lorsque j'ai terminé le test de lecture de la liste de musique dans l'après-midi, c'est-à-dire lorsque le nom du fichier mp3 à charger contient du chinois, pygame.error.
C'est embarrassant. Grâce au chemin de sortie, j'ai découvert qu'il n'y avait pas de caractères tronqués en chinois. Je l'ai recherché sur Google et j'ai découvert que certaines personnes de la communauté chinoise ont dit que <.>python devrait essayer d'éviter le chinois. Certaines personnes ont également dit que l'encodage pouvait être modifié. Mais j'ai essayé. Il semble que ce ne soit pas possible dans les communautés anglaises telles que Stack . Débordement. Après tout, les étrangers ne se soucient pas beaucoup de "nos propres affaires". J'ai donc cherché pendant longtemps et je n'ai pas trouvé de solution efficace. les experts devraient pouvoir le résoudre en changeant le code source dans pygame. Ce n'est pas quelque chose que je peux faire ^_^.
#debug : L'auteur a trouvé une méthode amusante, et il devrait y avoir une meilleure méthode d'implémentation. Permettez-moi d'abord de parler sans vergogne de mes idées de débogage : Tout d'abord, lorsque vous rencontrez le nom chinois mp3, c'est pygame.error qui se produit à ce moment-là. se produit dans le programme. Il est naturel de penser à l'instruction # Effet d'exécution :import pygameimport shutil path = '一走过的日子-刘德华.mp3'pygame.mixer.init()try: pygame.mixer.music.load(path) pygame.mixer.music.play()except: print('something is wrong~\nbut i see you.') shutil.copyfile(path,'play.mp3') pygame.mixer.music.load('play.mp3') pygame.mixer.music.play()
À ce stade, le programme peut lire normalement les fichiers mp3 chinois. En fait, ce problème ne résout pas essentiellement le problème de reconnaissance chinoise de pygame, mais. contourne ce problème. Cette méthode présente également des inconvénients , c'est-à-dire que le fichier play.mp3 sera généré, qui peut être placé dans le répertoire
cachelorsque vous travaillez sur le projet . point, la description de la résolution du problème de reconnaissance chinoise de pygame rencontré cet après-midi est terminée. S'il existe une meilleure méthode, veuillez me le faire savoir dans les commentaires, merci
Je viens de regarder le pygame python3.3.3. et j'ai fait quelques recherches sur le fichier mixer.pyd. J'ai trouvé le suffixe .pyd et j'ai découvert qu'il s'agissait d'un fichier binaire comme dll. Changez-le. Le contenu doit être décompilé. En d'autres termes, python n'est pas complètement open source.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!