Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   PlaySound , como reproducir aleatorio ? (https://www.clubdelphi.com/foros/showthread.php?t=69568)

gaston260 26-08-2010 00:25:41

PlaySound , como reproducir aleatorio ?
 
hola estoy un poco trabado en la reproduccion aleatoria de playsound , puedo reproducir un archivo de tipo wab pero no se como hacerlo aleatorio partiendo de la base de tener varios archivos y algunos los voy a crear limpios (sin sonido) , lo que quiero es que aveces se reproduzca uno o dos archivos de sonido pero la mayoria de las veces este en silencio !

gaston260 26-08-2010 05:07:27

Gracias por leerme ! use este codigo que es muy facil jeje y anda bastante bien ! pero si alguien quiere aportar algo mas sera bien venido !

saludos !

Código Delphi [-]
       Randomize;
          cont := Random(8);
  if cont = 2  then
     (PlaySound('C:\Windows\Media\Entrada de Windows XP.wav', 0, SND_FILENAME or SND_ASYNC));

ecfisa 27-08-2010 02:43:19

Hola Gaston.

Ya que lo pedís te hago un aporte... (no esperes demasiado... :) )

Hay mucho para retocar, pero por ahí te dá alguna idea nueva.
Código Delphi [-]
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, FileCtrl;

type
  TForm1 = class(TForm)
    FileListBox1: TFileListBox;
    btReproducir: TButton;
    btAleatorio: TButton;
    procedure btReproducirClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure btAleatorioClick(Sender: TObject);
  private
  public
  end;

var
  Form1: TForm1;

implementation {$R *.dfm}

uses MMSystem;

procedure TForm1.FormCreate(Sender: TObject);
begin
  with FileListBox1 do
  begin
    Mask:= '*.WAV';
    Directory:='C:\Windows\Media\';
    ItemIndex:= 0;
  end;
end;

procedure TForm1.btReproducirClick(Sender: TObject);
begin
  with FileListBox1 do
   sndPlaySound(PChar(Items[ItemIndex]),SND_NODEFAULT);
end;

procedure TForm1.btAleatorioClick(Sender: TObject);
var
  i: Integer;
begin
  FileListBox1.SetFocus;
  Randomize;
  with FileListBox1 do
  begin
    for i:= 1 to 10 do  // 10 temas al azar
    begin
      ItemIndex:= Random(Count-1);
      sndPlaySound(PChar(Items[ItemIndex]),SND_NODEFAULT OR SND_LOOP);
    end;
    ItemIndex:= 0;
  end;
  btAleatorio.SetFocus;
end;
end.

Saludos.

gaston260 31-08-2010 00:32:44

Hola ecfisa y muchas gracias por responder ! de momento no e usado tu codigo pero se ve que esta mas elavorado que el mio jeje , lo voy a usar a tu codigo apenas pueda amigo por ahora espero que me puedas contastar mi otra pregunta :D

saludos ! :cool:


La franja horaria es GMT +2. Ahora son las 06:05:00.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi