none
C# Butonun üzerine gelince ses gecikmeli geliyor. RRS feed

  • Soru

  • C# da butonların üzerine gelince ses efekti vermek istiyorum. Aşağıdaki kodlarla bu işi yaptım fakat çok az bir gecikmeyle çalışıyor butonların üzerinden hızlıca geçince ses çıkmıyor. Bunu nasıl çözebilirim?

    SoundPlayer ses = new SoundPlayer();
            string yol = Application.StartupPath + "\\dosyalar\\Buton_Sesi\\button-15.wav";
    
            private void button1_MouseHover(object sender, EventArgs e)
            {
                ses.SoundLocation = yol;
                ses.Play();
            }

    22 Eylül 2014 Pazartesi 21:46

Yanıtlar

Tüm Yanıtlar

  •         public string Path = @"C:\\beep-01a.wav";
            private void button1_MouseMove(object sender, MouseEventArgs e)
            {
                this.Cursor = Cursors.Hand;
                SoundPlayer player = new SoundPlayer();
                player.SoundLocation = Path;
                player.Play();
            }
    boyle denedim problem yok;
    22 Eylül 2014 Pazartesi 22:11
  • Mouse move ile butonun üzerinde hareket ettikçe de ses çıkar. Ben butonun üstüne gelince tek ses çıkmasını ve mouse la üstüne gelir gelmez ses çıkmasını istiyorum. Bu gecikmeyi birden fazla buton olunca daha iyi hissediyorsun. Butonların üzerinden hızlıca geçince ses gecikmeli geldiği için çıkmıyor.
    22 Eylül 2014 Pazartesi 22:39
  • Merhaba ,

    Denemedim ama sadece fikir yürütüyorum ,

    Uygulama Başladığında yani Form_Load event ında static  SoundPlayer oluşturup button hover özelliğinde sadece play yapsan belki daha hızlı olabilir.

    23 Eylül 2014 Salı 10:25
  • Merhaba,

    cevabınız için teşekkür ederim fakat static değişkeni form_load ın içinde nasıl tanımlayacağım ? Classın altında tanımlanmıyor mu static değişken birde static yapınca nesne üretemez hale gelmeyecek mi?


    23 Eylül 2014 Salı 14:51
  • Merhaba  ,

    public partial class Form1 : Form
        {
            private static SoundPlayer player = new SoundPlayer(Path.Combine(Application.StartupPath,@"dosyalar\Buton_Sesi\button-15.wav"));
            public Form1()
            {
                InitializeComponent();
            }
    
            private void button1_MouseHover(object sender, EventArgs e)
            {
                player.Play();
            }
        }

    bu şekilde denermisiniz 

    23 Eylül 2014 Salı 15:23
  • private static SoundPlayer ses = new SoundPlayer(Application.StartupPath + "\\dosyalar\\Buton_Sesi\\button-15.wav");
            private void button1_MouseHover(object sender, EventArgs e)
            {
                ses.Play();
            }

    Bu şekilde yaptım gene aynı bir şey değişmedi.

    private static SoundPlayer player = new SoundPlayer(Path.Combine(Application.StartupPath,@"dosyalar\Buton_Sesi\button-15.wav"));

    //Buradaki Path.Combine şeklinde yazmayı denedim hata verdi.

    23 Eylül 2014 Salı 19:44
  • Yusuf bey merhaba, MouseHover yerine MouseEnter eventini kullanarak sorunu çözebilirsiniz. Kolay gelsin. 
    • Yanıt Olarak İşaretleyen Yusuf Ceylan 24 Eylül 2014 Çarşamba 14:20
    24 Eylül 2014 Çarşamba 13:03