Bonjour à tous,
J'ai un petit souci, actuellement je suis en train de développer une petite application pour lire des mp3, cd et autres.
Pour cela, j'ai utilisé la bibliothèque FMOD.
Voila ma fonction qui me sert à charger mes fichiers mp3 à partir de l'adresse d'un dossier.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
| void TForm1::ChargerRep(AnsiString Dossier)
{
AnsiString Filtre = Dossier + "\\*.*";
TSearchRec sr;
int done;
done = FindFirst(Filtre, faAnyFile, sr);
while(!done)
{
AnsiString Ext; //vérification extension...
int PosPoint = sr.Name.LastDelimiter(".");
if(PosPoint == 0 ) //Dossier
{
ChargerRep(Dossier + "\\"+sr.Name);
}
Ext = sr.Name.SubString(PosPoint+1,sr.Name.Length()-PosPoint).LowerCase();
if(Ext=="mp3" || Ext=="wma") //Fichier
{
AnsiString Fichier = Dossier + "\\"+sr.Name;
FSOUND_STREAM *mp3;
mp3 = FSOUND_Stream_Open(Fichier.c_str(), FSOUND_NORMAL, 0,0);
FSOUND_SAMPLE *Mp3Info;
Mp3Info = FSOUND_Stream_GetSample(mp3);
if(FSOUND_Sample_GetName(Mp3Info) != "")
{
Liste->Items->Add(FSOUND_Sample_GetName(Mp3Info));
TabMp3[Liste->Count-1]=Fichier;
}
}
done = FindNext(sr); //balayage de tout le dossier
}
} |
Liste est une ListBox qui me sert de playlist.
TabMp3 est un map :
std::map<int,AnsiString>TabMp3;
Mon problème est que lorsque je récupère les informations du mp3 avec FSOUND_Sample_GetName dans certain cas j'obtiens des résultats bizar (comme des caractères inconnus, ect)
Donc je voulais vous demandez si vous aviez une autre méthode pour faire ce genre de code.
Merci d'avance pour votre réponse.
Cordialement.
Partager