Question

Pourquoi SDL_Mixer ne lit-il pas la musique de certains mp3?

J'utilise SDL_Mixer pour la lecture de musique dans une application que je crée. Sur certaines chansons (des albums entiers en fait), la musique ne sera tout simplement pas lue sans renvoyer d'erreurs. Les données de musique se chargent avec succès avec Mix_LoadMUS et lors de l’exécution de Mix_PlayMusic avec ces données, étrangement, 0 renvoie le succès mais ne lit aucune musique. J'ai également essayé de lire Mix_GetError () et SDL_GetError () (je crois qu'ils sont identiques) pour voir si cela génère une erreur, mais pas de chance.

Ma question est la suivante: pour quelles autres raisons SDL_mixer ne serait-il pas en mesure de lire un mp3 particulier?

Je sais que les mp3 sont fonctionnels car je peux les lire sur d’autres lecteurs de musique. Je sais aussi pertinemment qu’ils ne jouent pas (contrairement à ce qui se passe peut-être lorsque le volume est baissé) car Mix_PlayingMusic renvoie 0.

Merci à tous!

Était-ce utile?

La solution

Cela a fini par être un problème de son avec cet ordinateur particulier. Après avoir essayé les mêmes tests sur une autre machine, le son a fonctionné parfaitement. Juste une petite note au cas où quelqu'un d'autre rencontrerait ce problème.

Autres conseils

Différentes mises en œuvre de l’algorithme MP3 tolèrent différents niveaux de conformité au format. La plupart des lecteurs de musique sont assez tolérants, car la plupart des utilisateurs préfèrent entendre quelque chose qui s'agite, mais les bibliothèques de lecture communes tolèrent beaucoup moins.

Je vous conseillerais d'ouvrir les fichiers mp3 incriminés (ou tous) dans un éditeur d'échantillon audio, tel que Audacity et réexporter le mp3. Vous risquez de perdre un peu de qualité, car la compression mp3 entraîne naturellement des pertes, mais elle résoudra probablement le problème de lecture.

J'ai eu le même problème, et réexporter les fichiers mp3 avec audace n'a pas aidé, mais en faisant quelque chose comme ça:     if (Mix_PlayingMusic () == 0)         Mix_PlayMusic () dans la boucle de l'événement, la musique jouée après 2 ou 3 tentatives (c'était différent à chaque fois que j'exécutais le programme). Une autre solution consistait à convertir la musique en fichiers .ogg.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top