Musique erreur cannot allocate memory
MEGAGAMER734
Messages postés
170
Date d'inscription
Statut
Membre
Dernière intervention
-
MEGAGAMER734 Messages postés 170 Date d'inscription Statut Membre Dernière intervention -
MEGAGAMER734 Messages postés 170 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'ai créé un programme python qui lit aléatoirement les musiques / fichiers sonores présents dans le dossier musique de mon raspberry pi 4b. Les premières musiques sont lues correctement, mais après un petit moment, l'erreur "mmap() failed: Cannot allocate memory" apparaît plusieurs fois, avant de continuer la lecture vers une autre musique. J'aimerais savoir à quoi est due cette erreur et comment la supprimer.
Voici le programme entier:
Et voici le résultat de l'exécution du programme sur quelques musiques:
Merci de votre aide.
J'ai créé un programme python qui lit aléatoirement les musiques / fichiers sonores présents dans le dossier musique de mon raspberry pi 4b. Les premières musiques sont lues correctement, mais après un petit moment, l'erreur "mmap() failed: Cannot allocate memory" apparaît plusieurs fois, avant de continuer la lecture vers une autre musique. J'aimerais savoir à quoi est due cette erreur et comment la supprimer.
Voici le programme entier:
"""Read random music from music folder /home/pi/Music""" import audioread as ar # read metadata like duration of the mp3 file import random as rd # random functions import vlc # play sound of mp3 file import glob # list files and directories in the current directory import time # make pause while True: # general loop : one music peer loop file = rd.choice(glob.glob("/home/pi/Music/*")) # pick a random file while True: # until a playable music is found try: # if the selected file is a music with ar.audio_open(file) as mus: # open music file lenght = mus.duration # get the duration of the music music = vlc.MediaPlayer(file) # init music name = file.split("/")[-1] print(f"Now playing {name}...") # print the music name music.play() # play music time.sleep(lenght+1) # whait until music end break # next music except IsADirectoryError: # if the selected file is a directory new = rd.choice(glob.glob(f"{file}/*")).split("/")[-1] file = f"{file}/{new}" # search a file in this folder next loop
Et voici le résultat de l'exécution du programme sur quelques musiques:
pi@raspberrypi:~ $ python Desktop/codes/python/music.py
Now playing rap_saison_3.mp3...
Now playing whoopty.mp3...
Now playing 33_a_study_in_parhelion_red.mp3...
Now playing 1_survive.mp3...
Now playing billy.mp3...
Now playing 4_take_the_dive.mp3...
Now playing 48_shadow_leviathan.mp3...
Now playing rap_saison_3.mp3...
Now playing 4_take_the_dive.mp3...
Now playing 8_deep_dive.mp3...
mmap() failed: Cannot allocate memory
mmap() failed: Cannot allocate memory
mmap() failed: Cannot allocate memory
mmap() failed: Cannot allocate memory
mmap() failed: Cannot allocate memory
mmap() failed: Cannot allocate memory
Now playing 32_exosuit.mp3...
mmap() failed: Cannot allocate memory
mmap() failed: Cannot allocate memory
mmap() failed: Cannot allocate memory
mmap() failed: Cannot allocate memory
Now playing 48_rock_it.mp3...
mmap() failed: Cannot allocate memory
mmap() failed: Cannot allocate memory
mmap() failed: Cannot allocate memory
mmap() failed: Cannot allocate memory
Now playing billy.mp3...
Merci de votre aide.
A voir également:
- Facebook out of memory
- Windows memory cleaner - Télécharger - Optimisation
- Story facebook comment ça marche - Guide
- Comment voir qui regarde mon profil facebook - Guide
- Facebook lite gratuit - iam - Télécharger - Messagerie
- Compte facebook désactivé - Guide
1 réponse
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 584
bonjour,
si j'étais toi, j'essaierais d'éviter try/except, en vérifiant explicitement si le fichier est utilisable.
j'essaierais aussi de faire des sections try/break plus petites, toujours pour pouvoir prévenir plutôt que réagir.
si j'étais toi, j'essaierais d'éviter try/except, en vérifiant explicitement si le fichier est utilisable.
j'essaierais aussi de faire des sections try/break plus petites, toujours pour pouvoir prévenir plutôt que réagir.
j'ai modifié le try except en if else mais cela n'a pas résolu le problème. J'ai ajouté des marqueurs à certaines étapes du programme afin de connaître la cause précise. Tout d'abord, j'ai remarqué que l'erreur survenait toujours à la 11ème musique, mais c'est peut être une coïncidence. Sinon l'erreur survient sur cette ligne de code:
C'est donc le chargement de la musique qui pose problème. Mais après plusieurs essais (entre quatre et six) la musique est finalement lue (le programme ne passe pas à la musique suivante pais essaie de lire la musique jusqu'à ce que ça fonctionne).
Finalement, ce problème n'est pas très grave puisque la musique est finalement lue, mais j'aimerais quand même bien savoir d'où il vient afin d'avoir un code totalement fonctionnel. Merci de ton aide. Je remet au cas où le nouveau programme et le résultat de l'exécution.