Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 15 odgovora
  • 4.864 pregleda

Najnovija ↓

Wav-ovi sa preklapanjima ; Delphi 6 09.12.2004. u 21:13 · pre 266 meseci #1
Imam Dugme1 koje pushta Zvuk1
preko sndPlaySound('C:\...\Zvuk1.wav', SND_ASYNC) ;

I Dugme2 koje pushta Zvuk2 na isti nacin

E sad :
Ako zvukovi traju duze npr. 5 sec i ja pustim prvi pa brzo pustim drugi
tada se prvi prekida i ne odsvira do kraja nego odmah krene drugi zvuk.

Da li neko zna kako da ih "umiksujem" tj. da idu zajedno sve dok se prvi zvuk ne
zavrshi a nadalje samo drugi ???

Da li postoji neka druga procedura za pushtanje wav-ova
Re: Wav-ovi sa preklapanjima ; Delphi 6 09.12.2004. u 23:05 · pre 266 meseci #2
PlaySound je funkcija visokog nivoa, koja u sebi krije vise funkcija za rad sa zvukom. Preporucujem ti da ukucas u MS SDK help 'Waveform Functions' ili potrazis funkcije koje pocinju sa waveOut ili waveIn.

Dobro bi mozda bilo da potrazis i neku gotovu biblioteku za rad sa zvukom, sve zavisi sta zelis da uradis.

ss.
Potpis
When something is hard to do, then it's not worth doing.
Re: Wav-ovi sa preklapanjima ; Delphi 6 17.12.2004. u 13:04 · pre 266 meseci #4
Hvala Peke. Ja sam to skinuo ali mi trazi "directshow" heder. On mi kaze da ga
skinem sa "http://www.delphi-jedi.org/delphigraphics/" ali mi se ta strana ne
otvara.

Imas li ti to da mi posaljes na [email protected] pa da mi konacno proradi ?

Pocetnicko pitanje : da li ce sa tim hederom i ovim *CNAudioPlay* fajlom
svi ti moji wav-ovi da se cuju na svakoj masini ?

Da necu morati za nove masine i nove Windowse da ubacujem nove fajlove
koji imaju veze sa DirectX - om ???
Re: Wav-ovi sa preklapanjima ; Delphi 6 19.12.2004. u 21:55 · pre 266 meseci #5
Probaj Na http://www.delphi-jedi.org/ a ako ti ne uspe probaj http://sourceforge.net/project/showfiles.php?group_id=45786

Mislim da ce ti trebati DirecX 9.0 Biti instaliran na masinama da radi ali to je sve sto ti treba. Nisam siguran da li sve radi sa starijim Header-ima ali sa 9.0 radi.
Potpis
Pozdrav, Peke
Speed IO ADSL+ Rezultat
SpeedTest.NET ADSL+ Rezultat
Re: Wav-ovi sa preklapanjima ; Delphi 6 13.03.2005. u 19:42 · pre 263 meseca #6
Ej, sve sam montirao i radi !!!

Koji Device da koristim da bi program bio najportabilniji ???

Da li je to "Default DirectSound Device" ???
Re: Wav-ovi sa preklapanjima ; Delphi 6 13.03.2005. u 23:00 · pre 263 meseca #7
Ako koristis samo Default onda neces moci da koristis dve muzicke kartice ako ih imas ili treba da se koriste. Najbolje je da napravis tako da korisnik moze da izabere karticu.

Ako te nesto bas muci javi se na mail pa cu ti sve objaniti, ili mozda moze i ovde tako da jos neko iskoristi ;)
Potpis
Pozdrav, Peke
Speed IO ADSL+ Rezultat
SpeedTest.NET ADSL+ Rezultat
Re: Wav-ovi sa preklapanjima ; Delphi 6 14.03.2005. u 14:12 · pre 263 meseca #8

Ma ne treba korisnik nista da bira :)))

Samo hocu da mu odsviram neke wav-ove kada nesto uradi (povratna sprega).

Ali treba mi vishe wav-ova istovremeno (ako se izivljava nad dugmetom , ili uradi
dve stvari brzo jednu za drugom). Tada mi ne valja SndPlaySound f-ja vec
sam nasao onu komponentu koja mi proziva uredjaje i pushta na njima.

Meni samo treba da znam koji je NAJPORTABILNIJI , tj. da ga ima shto vishe ljudi.

Ne trebaju mi 2 kartice - samo jedan uredjaj koji imaju svi.

Da li je to Default DirectSound Device ili neki drugi ???

Shta da izaberem ?
Re: Wav-ovi sa preklapanjima ; Delphi 6 14.03.2005. u 16:08 · pre 263 meseca #9
To sto ti hoces ti radi onaj ... kako se zvashe .. sndPlaySound ... Ja sam imao problem da mu kazem da kada pustim drugi sound prvo prekine sa drugim :-)) Probaj malo one parametre da zezas .. po defaultu ja mislim da ide to sa preklapanjem.... A sto se tiche uredjaja definitivno Default DirectSound Device ...
Pozdrav
Re: Wav-ovi sa preklapanjima ; Delphi 6 15.03.2005. u 00:42 · pre 263 meseca #10
Code:
Procedure PlayFile(Player : tcbaudioplay);
Var
  Cnt : Integer;
begin
  for Cnt := cbDeviceList.count-1 DownTo 0 do
  begin
    IF (pos('Default DirectSound Device',cbDeviceList[cnt]) > 0) Then
      Begin
         Player := TcbAudioPlay.Create(mainForm, FileName, cnt);
      End;
  end;
  Player.Play;
end;


Evo ti procedura koja ce ti pustiti neki fajl preko 'Default DirectSound Device'-a.
Uzivaj.
Potpis
Pozdrav, Peke
Speed IO ADSL+ Rezultat
SpeedTest.NET ADSL+ Rezultat
Re: Wav-ovi sa preklapanjima ; Delphi 6 15.03.2005. u 21:00 · pre 263 meseca #11
Ovaj kod RADI !!!

Pitanja :

- da li smem proceduru " Procedure PlayFile(Player : tcbaudioplay); "
da zovem do besvesti ???

- jer u njoj kaze " Player := TcbAudioPlay.Create " !!!

- sta se desava ??? Oni se kreiraju i kreiraju i kreiraju ... ili ne ?
sta se desi posle " Player.Play; "

- da li ja negde treba da kazem " Player.Free ; "


PS: ja sam radio bez argumenata u proceduri PlayFile :

Code:

unit Unit3;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, cbAudioPlay, ExtCtrls, Menus, DirectShow, ComCtrls, Buttons,
  MMSystem;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure FormDestroy(Sender: TObject);

  private
    { Private declarations }
  public
    { Public declarations }
  end;

procedure PlayWav1();
procedure PlayWav2();

var
  Form1: TForm1;
  PustacWav1 , PustacWav2 : TcbAudioPlay;
implementation

{$R *.dfm}

procedure PlayWav1();
var
  Cnt : Integer;
begin
  for Cnt := cbDeviceList.count-1 DownTo 0 do
  begin
    if (pos('Default DirectSound Device',cbDeviceList[cnt]) > 0) Then
      begin
         PustacWav1 := TcbAudioPlay.Create(Form1,'..\Wavs\Wav1.wav', cnt);
      end;
  end;
    PustacWav1.Play;
end;

procedure PlayWav2();
var
  Cnt : Integer;
begin
  for Cnt := cbDeviceList.count-1 DownTo 0 do
  begin
    if (pos('Default DirectSound Device',cbDeviceList[cnt]) > 0) Then
      begin
         PustacWav2 := TcbAudioPlay.Create(Form1,'..\Wavs\Wav2.wav', cnt);
      end;
  end;
    PustacWav2.Play;

end;

procedure TForm1.Button1Click(Sender: TObject);
begin
     PlayWav1;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
    PlayWav2;
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
    PustacWav1.Free;
    PustacWav2.Free;
end;

end.

Valja li ovo ista :)

Sta ne valja :)
Re: Wav-ovi sa preklapanjima ; Delphi 6 16.03.2005. u 00:54 · pre 263 meseca #12
Citat:
- da li smem proceduru " Procedure PlayFile(Player : tcbaudioplay); "
da zovem do besvesti ???
- jer u njoj kaze " Player := TcbAudioPlay.Create " !!!
- sta se desava ??? Oni se kreiraju i kreiraju i kreiraju ... ili ne ?


Mozes onoliko puta koliko ti twoja muzicka kartica dozvoljava tj. koliko ima hardware-skih kanala. Recimo CMI8738 ima 16 DirectSound Kanala za koriscenje.

Citat:
sta se desi posle " Player.Play; "

Kreirani DirectSound Buffer pusta fajl ;)

Citat:
- da li ja negde treba da kazem " Player.Free ; "


Naravno. To ide na kraju :) Moras napraviti proceduru koja oslobadja player kada se pustanje zavrsi inace ceti ponestati kanala :)

Citat:
PS: ja sam radio bez argumenata u proceduri PlayFile :

....

Valja li ovo ista :)

Sta ne valja :)

Valja to radi posao, jedino bih te ispravio sto ti sa tim pravis glomazan kod tj. za svaki klik pravis novu proceduru PlayFile1, PlayFile2, .... Sto ce ti napraviti veliiiiiku nocnu moru kada se pojavi greska :)
Ako bi recimo koristio moju proceduru za play onda onda u slucaju greske samo nju mucis :)
To be recimo izgledalo ovako:
Code:
procedure TForm1.Button1Click(Sender: TObject);
begin
     PlayFile(PustacWav1);
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
    PlayFile(PustacWav2);
end;


;)

P.S. Savet: Najbolje je da napravis nekoliko procedura ili funkcija za PLAY, STOP, NEXT, PREV, PAUSE, .... I jos po neke za evente,... itd postoji velika sansa da se na kraju izgubis u sopstvenom kodu ako ne optimizujes.
Potpis
Pozdrav, Peke
Speed IO ADSL+ Rezultat
SpeedTest.NET ADSL+ Rezultat
Re: Wav-ovi sa preklapanjima ; Delphi 6 16.03.2005. u 13:41 · pre 263 meseca #13
" To ide na kraju Moras napraviti proceduru koja oslobadja player
kada se pustanje zavrsi inace ceti ponestati kanala "

Aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa...

Ne znam kako da proverim "kada je pustanje zavrseno" . Kad probam ,
unit cbAudioPlay mi se nesto buni.

Da li bi trebalo da pravim niz pustaca za svaki zvuk ?

Ovo moje sto radi jede memoriju k'o ludo zato sto ih ne oslobadjam :(
Ali mi se cini da mi ne ponestaje kanala. Cudno.

Pogubio sam se totalno :)

Moze li neko da mi napishe komplet kod : 1 forma , 2 dugmeta , 2 wav-a ,
dozvoljeno izivljavanje na dugmicima , prijateljski odnos sa memorijom ,
radi na svim masinama . Treba mi samo PLAY.
Pa to neka bude i ovde za narod.

Imam vec 4 varijante od kojih neke "pucaju" a ostaje jedu memoriju.
Poludecu :)

Pozdrav svima i hvala na strpljenu za 1 Delphi beginnera :)
Re: Wav-ovi sa preklapanjima ; Delphi 6 16.03.2005. u 15:57 · pre 263 meseca #14
Citat:
mrkvojed:
Ovo moje sto radi jede memoriju k'o ludo zato sto ih ne oslobadjam :(
Ali mi se cini da mi ne ponestaje kanala. Cudno.

Pogubio sam se totalno :)


Znao sam, ja sam se patio i patio pre oko godinu ipo da skontam ali skontao sam ;)

Nemoj samo da places, nece mnogo da te boli kod cika zube. Izvadicemo mi taj zub lakse :)

Citat:
mrkvojed:
Moze li neko da mi napishe komplet kod : 1 forma , 2 dugmeta , 2 wav-a ,
dozvoljeno izivljavanje na dugmicima , prijateljski odnos sa memorijom ,
radi na svim masinama . Treba mi samo PLAY.
Pa to neka bude i ovde za narod.


I u danasnjem trazili ste gledajte imate ........ Primer :)

Citat:
mrkvojed:
Imam vec 4 varijante od kojih neke "pucaju" a ostaje jedu memoriju.
Poludecu :)

Pozdrav svima i hvala na strpljenu za 1 Delphi beginnera :)


Nema ceka lazo daj MB pivo.

P.S. Nadam se da si zadovoljan? A sada cemo da te ostavimo da se patis ;)
Potpis
Pozdrav, Peke
Speed IO ADSL+ Rezultat
SpeedTest.NET ADSL+ Rezultat
Re: Wav-ovi sa preklapanjima ; Delphi 6 17.03.2005. u 13:10 · pre 263 meseca #15

Ala si ga napravio - svaka ti cast !

Na Formi - samo dugmici :)

Pa komentarisano, pa radi ...

Do yaya !


Pozdrav Svima - Tema gotova.
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme