Lire le contenu d'un dossier et de ses sous-dossiers avec TMediaPlayer

mighty_warrior Messages postés 123 Date d'inscription lundi 12 juin 2006 Statut Membre Dernière intervention 9 février 2010 - 8 mars 2008 à 10:54
mighty_warrior Messages postés 123 Date d'inscription lundi 12 juin 2006 Statut Membre Dernière intervention 9 février 2010 - 8 mars 2008 à 20:15
Bonjour,

Je voulais savoir de quel maniére lire le contenu d'un dossier et de ses sous-dossiers avec TMediaPlayer (un peu comme si on clik sur  "lire tout" dans le dossier "Ma musique" sous win xp).

D'autre part y a t'il une façon d'y appliquer un random?

voilà merci bien.

2 réponses

Utilisateur anonyme
8 mars 2008 à 18:02
Salut,

Ta question n'est pas claire : on ne sait pas si tu cherches à lister l'ensemble des fichiers  wav ou si tu veux utiliser ton application par défaut dès que tu vas cliquer sur le dossier "Ma musique". Evidemment cela n'a rien avoir.

Pour le second cas, la MSDN est la première chose à voir. Si rien de concluant, regarder la base de registre.

Pour le premier cas

procedure FindFiles(FilesList: TStringList; StartDir, FileMask: string);
var
  SR: TSearchRec;
  DirList: TStringList;
  IsFound: Boolean;
  i: integer;
begin
  if StartDir[length(StartDir)] <> '\' then
    StartDir := StartDir + '\';
  IsFound :=FindFirst(StartDir+FileMask, faAnyFile-faDirectory, SR) = 0;
  while IsFound do begin
    FilesList.Add(StartDir + SR.Name);    IsFound :FindNext(SR) 0;
    Application.ProcessMessages;
  end;
  FindClose(SR);
  DirList := TStringList.Create;  IsFound :FindFirst(StartDir+'*.*', faAnyFile, SR) 0;
  while IsFound do begin
    if ((SR.Attr and faDirectory) <> 0) and (SR.Name[1] <> '.') then
    DirList.Add(StartDir + SR.Name);    IsFound :FindNext(SR) 0;
    Application.ProcessMessages;
  end;
  FindClose(SR);
  for i := 0 to DirList.Count - 1 do
  FindFiles(FilesList, DirList[i], FileMask);
  DirList.Free;
end;

procedure List_Type_File(AFolder, Extension:String;AListBox:TListBox);
var
  FilesList: TStringList;
begin
  FilesList := TStringList.Create;
  try
    AListBox.Clear;
    FindFiles(FilesList,AFolder,Extension);
    AListBox.Items.Assign(FilesList);
  finally
    FilesList.Free;
  end;

A appeler comme cela List_Type_File('C:\','Wav',ListBox1)

Pour le random : je vois pas ou est le probleme. Tu crée une StringList avec le nom des fichiers wav sélectionnés. Tu appelles un random et si la valeur renvoyée est supérieure au nombre d'Items-1, bien tu rappelles ta fonction, si la valeur n'est pas supérieure il t'est facile de récupérer le nom du fichier correspondant et de lancer ce fichier wav via un TMediaPlayer. J'ai pas regardé mais cela m'étonnerait qu'un tel exemple ne soit pas sur le site
0
mighty_warrior Messages postés 123 Date d'inscription lundi 12 juin 2006 Statut Membre Dernière intervention 9 février 2010
8 mars 2008 à 20:15
En fait ce que je cherche à obtenir c lire le contenu du dossier ma musique lorsque l'on click sur un Tbutton.
Est-on obliger de créer une liste pour celà?
0
Rejoignez-nous