Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
Uygulama içi ses
#1
Merhaba arkadaşlar.

Kafama bir soru takıldı. Billdiğiniz üzere Delphide yazılan programlar Windwos da tanıtılmış sesleri olaylara göre çalıyor.

Örneğin uygulama içinde ENTER tuşuna bastığınızda Blingg diye bir ses çalıoyr (Windows da tanıtılmış ses)..

Bunu uygulama içinde komple iptal edip başka bir ses çaldırma işi ile ilgilenen oldu mu hiç yada aklına bir fikir gelen?
// Bilgi paylaştıkça çoğalır.. 

Cevapla
#2
(08-06-2020, Saat: 15:35)mcuyan Adlı Kullanıcıdan Alıntı: Merhaba arkadaşlar.

Kafama bir soru takıldı. Billdiğiniz üzere Delphide yazılan programlar Windwos da tanıtılmış sesleri olaylara göre çalıyor.

Örneğin uygulama içinde ENTER tuşuna bastığınızda Blingg diye bir ses çalıoyr (Windows da tanıtılmış ses)..

Bunu uygulama içinde komple iptal edip başka bir ses çaldırma işi ile ilgilenen oldu mu hiç yada aklına bir fikir gelen?
Selamlar
Ben genelde onpresskey eventına aşağıdaki şekilde bir kodla yapıyorum.

sndPlaySound('D:\batarya_izleme\alarm.wav', SND_NODEFAULT Or SND_ASYNC Or SND_LOOP);
Yazılımcı, kahveyi koda çeviren bir organizmadır.
Cevapla
#3
hocam öncelikle cevap için teşekkürler.

boş forma bi edit yerleştirin, onkeypress olayına


 if key=#13  then

 playsound('C:\windows\media\tada.wav',0,SND_ASYNC );


yazdığınızda hem beep sesi hemde sizin kodda belirttiğiniz "tada" sesi geliyor. Ben beep sesinin hiç çıkmasını istemiyorum.
// Bilgi paylaştıkça çoğalır.. 

Cevapla
#4
(08-06-2020, Saat: 16:00)mcuyan Adlı Kullanıcıdan Alıntı: hocam öncelikle cevap için teşekkürler.

boş forma bi edit yerleştirin, onkeypress olayına


 if key=#13  then

 playsound('C:\windows\media\tada.wav',0,SND_ASYNC );


yazdığınızda hem beep sesi hemde sizin kodda belirttiğiniz "tada" sesi geliyor. Ben beep sesinin hiç çıkmasını istemiyorum.

o halde kodu lütfen şu şekilde düzenleyin. Sorun olmadığını göreceksiniz.
SystemParametersInfo(SPI_SETBEEP, 0, nil, SPIF_SENDWININICHANGE);
if key=#13 then
playsound('C:\windows\media\tada.wav',0,SND_ASYNC );

aşağıdaki kodlarla enable ve disable edebilirsiniz.
//Disable system beep
SystemParametersInfo(SPI_SETBEEP, 0, nil, SPIF_SENDWININICHANGE);

//Enable system beep
SystemParametersInfo(SPI_SETBEEP, 1, nil, SPIF_SENDWININICHANGE);
Yazılımcı, kahveyi koda çeviren bir organizmadır.
Cevapla
#5
Walla ne kadar teşekkür etsem azdır tam olarak istediğim buydu hocam.

Fakat 1 kere sesi kapatınca tüm formlarda hatta sistemi kapatı açınca da komple kesiliyor. sanırım direk windowsun sesini kapatıyor? doğru mu anlamışım.. sadece o oturum için yapılan bir olay değil tüm zamanları etkliyor?
// Bilgi paylaştıkça çoğalır.. 

Cevapla
#6
(08-06-2020, Saat: 21:09)mcuyan Adlı Kullanıcıdan Alıntı: Walla ne kadar teşekkür etsem azdır tam olarak istediğim buydu hocam.

Fakat 1 kere sesi kapatınca tüm formlarda hatta sistemi kapatı açınca da komple kesiliyor. sanırım direk windowsun sesini kapatıyor? doğru mu anlamışım.. sadece o oturum için yapılan bir olay değil tüm zamanları etkliyor?

Sanırım öyle. Bu sebeple, formun kapanışından öncei tekrar enable yapmanız uygun olacaktır.
Yazılımcı, kahveyi koda çeviren bir organizmadır.
Cevapla
#7
malesef sıkıntı oldu. Fakat aşağıdaki kod ile çözdüm olayı. aslında VK_Return da bitti iş Smile


 if (Key = #13)  then
 begin
   Key := #0;
   Perform(CM_DIALOGKEY, VK_RETURN, 0);
   Button3.Click;
 end;
// Bilgi paylaştıkça çoğalır.. 

Cevapla
#8
(08-06-2020, Saat: 21:39)mcuyan Adlı Kullanıcıdan Alıntı: malesef sıkıntı oldu. Fakat aşağıdaki kod ile çözdüm olayı. aslında VK_Return da bitti iş Smile


 if (Key = #13)  then
 begin
   Key := #0;
   Perform(CM_DIALOGKEY, VK_RETURN, 0);
   Button3.Click;
 end;

Geçmiş olsun o halde.
Yazılımcı, kahveyi koda çeviren bir organizmadır.
Cevapla
#9
Merhabalar ses konusu ile ilgili yeni konu açmamak için buraya yazıyorum. yanlış olmamıştır İnşallah.

Delphi 10 Seattle FMX uygulamasında  MessageDlg (ve eskiden Application.MessageBox) kullanıyordum fakat OK, Cancel, Yes, No düğmeleri Windows'ta Türkçe çıkmadığı için kendi function'mı yazdım. İçinde de ses çıkarması için "System.SysUtils.Beep;" ekledim. Fakat artık birkaç defa mesaj çağrıldıktan sonra hafızada Windows Audio Device Graph Isolation sürekli büyümeye başlıyor. Birkaç saat sonra yüzlerce MB oluyor. MessageDlg kullanırken böyle değildi. İleride uygulamayı dağıtınca hafıza miktarı düşük bilgisayarlarda problem olmasından endişeleniyorum. İleriki sürümlerde böyle bir problem var mı? veya alternatif tavsiye edebilir misiniz?
saygılar mustafa ֍zgün 
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Askıya alınan uygulama mcuyan 9 467 04-03-2024, Saat: 19:58
Son Yorum: mcuyan
  Çalışan uygulama açık ise uyarı versin. Bay_Y 4 1.088 30-12-2022, Saat: 16:28
Son Yorum: Bay_Y
  Url Uygulama ilişkilendirme bydelphi 2 1.042 23-05-2022, Saat: 15:58
Son Yorum: bydelphi
  Uygulama, geçerli işlem için yanlış türde bir değer kullanıyor. şeklinde hata uyarısı denizfatihi 11 2.987 30-12-2021, Saat: 13:45
Son Yorum: denizfatihi
Star Windows 11 Uygulama İçi Ses Sorunu frmman 1 595 22-12-2021, Saat: 13:20
Son Yorum: frmman



Konuyu Okuyanlar: 1 Ziyaretçi