form açılırken ses çalma

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
makprogrammer
Üye
Mesajlar: 11
Kayıt: 30 Eki 2016 09:05

form açılırken ses çalma

Mesaj gönderen makprogrammer »

Selamun Aleyküm,

Form açılırken kısa bir süre ses çalmasını istiyorum, butona basmadan. Nasıl yapabilirim?
Kullanıcı avatarı
yhackup
Üye
Mesajlar: 115
Kayıt: 09 Ağu 2014 09:09
İletişim:

Re: form açılırken ses çalma

Mesaj gönderen yhackup »

Formun oncreate eventine yaz kodlarını.
Çaylak Delphici :D

Yakup ULUTAŞ
cmkare
Üye
Mesajlar: 177
Kayıt: 23 Ağu 2010 11:29

Re: form açılırken ses çalma

Mesaj gönderen cmkare »

Uses
MMsystem

Form_Create olayına;

MCISendString(PChar(' play ' + 'C:\ses.mp3'), nil, 0, 0);

ekle..
izmirlikemal
Üye
Mesajlar: 155
Kayıt: 10 Oca 2014 01:08
Konum: izmir/Buca

Re: form açılırken ses çalma

Mesaj gönderen izmirlikemal »

cemkare arkadaşım bu yazdığın kodlar Delphi XE8 de tanınmıyor. Gerçekten Programın açılışında kısa bir müzik güzel olur. Delphi XE8 de Nasıl çalışır izah etmen mümkün mü?
Kullanıcı avatarı
yhackup
Üye
Mesajlar: 115
Kayıt: 09 Ağu 2014 09:09
İletişim:

Re: form açılırken ses çalma

Mesaj gönderen yhackup »

uses'e MMsystem ekledin mi ?
Çaylak Delphici :D

Yakup ULUTAŞ
ertank
Kıdemli Üye
Mesajlar: 1653
Kayıt: 12 Eyl 2015 12:45

Re: form açılırken ses çalma

Mesaj gönderen ertank »

Farklı bir yöntem de aşağıdaki gibi olabilir:

Kod: Tümünü seç

uses 
  MMSystem;

procedure Form1.FormCreate(Sender: TObject);
begin  
  PlaySound('SYSTEMSTART', 0, SND_ASYNC);
end;
Yukarıdaki kod windows işletim sisteminde açılış sesi olarak tanımlanmış ses ne ise onu çalar. Boş ise çalmaz. İşletim sistemine özel seslerden kullanılabileceklerin listesine aşağıdaki linkten ulaşabilirsiniz.
http://www.askingbox.com/tutorial/delph ... tem-sounds

Kod: Tümünü seç

uses 
  MMSystem;

procedure Form1.FormCreate(Sender: TObject);
begin
  sndPlaySound(PChar('uygulamaya_ozel_ses_dosyasi_dizin_ve_dosya_adi'), SND_NODEFAULT Or SND_ASYNC);
end;
Yukarıdaki kod düzenlenerek sizin istediğiniz farklı bir ses dosyasını çaldırmanız mümkün. Dosya bulunamaz ise hata mesajı gelmez.

NOT: İkinci örnekte kullanılan komut ilk örnekten farklıdır.
makprogrammer
Üye
Mesajlar: 11
Kayıt: 30 Eki 2016 09:05

Re: form açılırken ses çalma

Mesaj gönderen makprogrammer »

eyvallah. yalnız ses dosyasını hariçten çalıyor, başka bilgisayarda yaptığım programı çalıştırınca sesi çalmıyor. exe nin içine gömmek lazım ses dosyasını. onu nasıl yapabiliriz?
ertank
Kıdemli Üye
Mesajlar: 1653
Kayıt: 12 Eyl 2015 12:45

Re: form açılırken ses çalma

Mesaj gönderen ertank »

İstediğiniz EXE içinde bir kaynak (resource) eklemek. Bu işlem basit olmakla beraber bir miktar uğraşı gerektiriyor. Ekteki uygulamalar bu uğraşıları minimize etmeye yardımcı olabilir.

1- RCDataCreate projesini derleyip çalıştırın. Uygulamayı kullanarak istediğiniz WAV formatında ses dosyalarını resource dosyasına dönüştürün. Dosyalar mutaka WAV formatında olmalı. MP3 dosyaların ekini WAV şeklinde değiştirmek bu noktada işe yaramaz. Bu işlemi yaparken her dosya için hangi Resource ID rakamını kullandığınızı kaydedin. Uygulama içinden ses dosyasını kullanır iken artık bu rakam ile çağırılacak. Bu anlamda, aynı rakamı kullanarak birden fazla res dosyası oluşturmayın. Her birinin kendi ayrı numarası olması gerekli.
2- Uygulamanız içinde aşağıdaki eklentileri yapın:
a- oluşturulan res dosyasını ses çalacak olan uygulamanın dizinine kopyalayın.
b- Proje kaynak kodunda veya ses çalacak ünitenin içinde (her ikisi de çalışır) {$R *.DFM} ifadesini bulun. Bunun altına res dosyanızın adını ekleyin
Örnek:

Kod: Tümünü seç

{$R *.DFM}
{$R chord.RES}
{$R chimes.RES}
c- EXE içinde gömülü ses dosyasını çalmak için aşağıdaki fonksiyonu kullanabilirsiniz. Burada dikkat etmeniz gereken res dosyası oluştururken kullandığınız Resource ID rakamını CreateFromID() fonksiyonunda birebir kullanmak.

Kod: Tümünü seç

procedure TForm1.Button1Click(Sender: TObject);
var
  RS: TResourceStream;
begin
  RS := TResourceStream.CreateFromID(HInstance, 200, RT_RCDATA);
  try
    RS.Position := 0;
    sndPlaySound(RS.Memory, SND_MEMORY or SND_ASYNC);
  finally
    RS.Free();
  end;
end;
Kaynaklar:
http://delphidabbler.com/articles?article=2
http://stackoverflow.com/questions/3670 ... -in-delphi
Dosya ekleri
RCDataCreator.rar
Resource file creator
(3.79 KiB) 87 kere indirildi
makprogrammer
Üye
Mesajlar: 11
Kayıt: 30 Eki 2016 09:05

Re: form açılırken ses çalma

Mesaj gönderen makprogrammer »

teşekkür ederim, uğraştırdım sizi de...
Cevapla