Musique erreur cannot allocate memory
MEGAGAMER734
Messages postés
183
Statut
Membre
-
MEGAGAMER734 Messages postés 183 Statut Membre -
MEGAGAMER734 Messages postés 183 Statut Membre -
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
- Windows memory diagnostic - Télécharger - Optimisation
- Voir qui regarde mon profil facebook - Guide
- Facebook lite gratuit - iam - Télécharger - Messagerie
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.
"""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 if file[-4:] == ".mp3": # 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 print("\nduration get") music = vlc.MediaPlayer(file) # init music print("music initiated") name = file.split("/")[-1] print(f"Now playing {name}...") # print the music name music.play() # play music print("music is playing") time.sleep(lenght+1) # whait until music end break # next music else: # 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