Foros del Web » Programación para mayores de 30 ;) » .NET »

Problema con reproduccion de sonidos en C#

Estas en el tema de Problema con reproduccion de sonidos en C# en el foro de .NET en Foros del Web. Hola tengo mi aplicación en la que al presionar una tecla reproduce un sonido mientras esta esté presionada. El problema es el siguiente: al cambiar ...
  #1 (permalink)  
Antiguo 25/06/2013, 11:05
 
Fecha de Ingreso: julio-2011
Mensajes: 25
Antigüedad: 12 años, 9 meses
Puntos: 0
Pregunta Problema con reproduccion de sonidos en C#

Hola tengo mi aplicación en la que al presionar una tecla reproduce un sonido mientras esta esté presionada. El problema es el siguiente: al cambiar de tecla el sonido no reproduce de inmediato, demora un poco en reproducirse el cual debería reproducirse ni bien se presione la tecla... aquí les dejo lo que tengo en mi código:

Código:
       bool playing = false;

        bool _bKeyIsDown = false;

        protected override void OnKeyDown(KeyEventArgs e)
        {
            if (_bKeyIsDown) return;
            _bKeyIsDown = true;
            // play sound;
            base.OnKeyDown(e);
        } 
        protected override void OnKeyUp(KeyEventArgs e) 
        { 
            base.OnKeyUp(e);
            _bKeyIsDown = false;
        }

        private void Window_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.D1)
            {
                if (label5.Text == "Waiting 01.wav")
                {
                    MessageBox.Show("No beat loaded");
                    return;
                }
                    pictureBox6.Image = Form1.Properties.Resources.white_square_button;
                    try
                    {
                        playing = true;
                        player1.Open(new Uri(label37.Text));
                        player1.Volume = (double)trackBar4.Value / 100;
                        player1.Play();
                    }
                    catch (FileNotFoundException)
                    {
                        MessageBox.Show("File has been moved." + "\n" + "Please relocate it now!");
                    }
            }
            else if (e.KeyCode == Keys.D2)
            {
                if (label19.Text == "Waiting 02.wav")
                {
                    MessageBox.Show("No beat loaded");
                    return;
                }
                pictureBox7.Image = Form1.Properties.Resources.white_square_button;
                try
                {
                    playing = true;
                    player2.Open(new Uri(label38.Text));
                    player2.Volume = (double)trackBar4.Value / 100;
                    player2.Play();
                }
                catch (FileNotFoundException)
                {
                    MessageBox.Show("File has been moved." + "\n" + "Please relocate it now!");
                }
            }

Como he dicho la primera vez que presionas la tecla el sonido reproduce normalmente pero si quieres cambiar de tecla o presionas otra a la vez el sonido no reproduce o demora en reproducir.

Me atrevo a decir que el problema está aquí: if (_bKeyIsDown) return;

Pero si quito eso el sonido no reproduce completo.

Por favor si alguien me puede orientar en esto estaré muy agradecido.

Gracias de antemano.

Etiquetas: c#.net
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:06.