Usuário com melhor resposta
Teclado musical virtual

Pergunta
-
Boa tarde a todos do fórum!
Pessoal! Eu fiz essa pergunta antes, mas, acho que a mesma não foi muito clara.
Eu quero desenvolver um projeto para a minha filhinha. É esse teclado aqui:
Eu já consegui inserir sons através do Windows Media Player. Mas, o que quero é:
ao tocar uma música de fundo no Windows Media Player, a criança consiga tocar em um botão. E quando clicar nesse botão, o instrumento emitir um som ao mesmo tempo do que está sendo tocado Windows Media Player.
Aqui está o código:
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using System.IO; using System.Media; namespace wfTokMusic { public partial class frmMusic : Form { string[] archivo, rute; string[] music = new string[1000]; public frmMusic() { InitializeComponent(); } private void playListToolStripMenuItem_Click(object sender, EventArgs e) { openFileDialog1.Multiselect = true; openFileDialog1.InitialDirectory = label1.Text; openFileDialog1.Filter = "archivo MP3|*.mp3| archivo MP4|*.mp4| archivo AVI|*.avi| arquivo WAV|*.wav"; if (openFileDialog1.ShowDialog() == System.Windows.Forms.DialogResult.OK) { archivo = openFileDialog1.SafeFileNames; rute = openFileDialog1.FileNames; for (int i = 0; i < archivo.Length; i++) { listMusic.Items.Add(archivo[i]); } } } private void playToolStripMenuItem_Click(object sender, EventArgs e) { axWindowsMediaPlayer1.Ctlcontrols.play(); } private void pauseToolStripMenuItem_Click(object sender, EventArgs e) { axWindowsMediaPlayer1.Ctlcontrols.pause(); } private void stopToolStripMenuItem_Click(object sender, EventArgs e) { axWindowsMediaPlayer1.Ctlcontrols.stop(); } private void rewindToolStripMenuItem_Click(object sender, EventArgs e) { if (listMusic.SelectedIndex != 0) { listMusic.SetSelected(listMusic.SelectedIndex - 1, true); axWindowsMediaPlayer1.URL = music[listMusic.SelectedIndex]; } } private void forwardToolStripMenuItem_Click(object sender, EventArgs e) { if (listMusic.SelectedIndex != listMusic.Items.Count - 1) { listMusic.SetSelected(listMusic.SelectedIndex + 1, true); axWindowsMediaPlayer1.URL = music[listMusic.SelectedIndex]; } } private void inícioToolStripMenuItem_Click(object sender, EventArgs e) { listMusic.SetSelected(0, true); axWindowsMediaPlayer1.URL = music[listMusic.SelectedIndex]; } private void últimoToolStripMenuItem_Click(object sender, EventArgs e) { listMusic.SetSelected(listMusic.Items.Count - 1, true); axWindowsMediaPlayer1.URL = music[listMusic.SelectedIndex]; } private void sairToolStripMenuItem_Click(object sender, EventArgs e) { this.Close(); } private void listMusic_SelectedIndexChanged(object sender, EventArgs e) { axWindowsMediaPlayer1.URL = rute[listMusic.SelectedIndex]; } private void trackVolume_Scroll(object sender, EventArgs e) { axWindowsMediaPlayer1.settings.volume = trackVolume.Value; } private void btTecla1_Click(object sender, EventArgs e) { AxWMPLib.AxWindowsMediaPlayer wmp = new AxWMPLib.AxWindowsMediaPlayer(); wmp.URL = "D:\\Fannatikus\\wfTokMusic\\wfTokMusic\\Resources\\band-la.wav"; wmp.Ctlcontrols.play(); } } }
O problema que eu não consigo resolver está evento click do botão btTecla1_Click. Eu não sei que comando é adequado para este tipo de evento. Nesse botão não consigo emitir um som ao apertar a tecla.
Estou usando o Visual Studio 2013 Ultimate e o Visual Studio 2015 Community.
Desde já, mui agradecido pela ajuda.
Respostas
-
Bom dia,
Verifique as sugestões neste link.
Atenciosamente,
Robson William Silva
Esse conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita
MSDN Community Support
Por favor, lembre-se de Marcar como Resposta as postagens que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.
- Marcado como Resposta Robson William SilvaModerator quarta-feira, 18 de janeiro de 2017 11:22
Todas as Respostas
-
Bom dia DesignWeb,
Como será os sons? Você tem os arquivos dos sons prontos? Você precisa somente executar o som é isso?
Se ajudei Vote como Útil, se resolvi seu problema clique em Marcar como Resposta.
Daniel Ribeiro Arrais
Consultor Sênior
Site: www.danielarrais.com.br
Linkedin: http://www.linkedin.com/in/danielarrais
E-mail: arraishapkido@gmail.com
Skype: dani.arrais
-
-
Olá DesignWeb
Eu entendi que o som são de notas musicais, só não consegui entendi onde estão estes sons? São arquivos MP3 por exemplo com o som de DO outro com som de RE?
Qual sua idéia?
Se ajudei Vote como Útil, se resolvi seu problema clique em Marcar como Resposta.
Daniel Ribeiro Arrais
Consultor Sênior
Site: www.danielarrais.com.br
Linkedin: http://www.linkedin.com/in/danielarrais
E-mail: arraishapkido@gmail.com
Skype: dani.arrais
-
Boa tarde, Daniel!
É exatamente assim como você está pensando. Os fundos musicais, são MP3, MP4, AVI e WAV.
Só que, no evento do botão btTecla1_Click, é um arquivo WAV, e quando dou um clique no botão aparece esse erro aqui:
As notas musicais, meu colega de trabalho, que é músico, está providenciando.
Muito grato se me ajudar a resolver o problema.
-
Olá DesignWeb,
O problema está no path!Ele não consegue entender da forma que você está passando.
Experiementa por @ e colocar uma barra apenas :
wmp.URL = @"D:\PASTA\ARQUIVO.WAV";OU colocar 3 barras
wmp.URL = "D:\\\PASTA\\\ARQUIVO.WAV";
[]'S,
--Se a resposta for relevante ou tenha resolvido seu problema, marque como útil/resposta!
- Editado Rodrigo Suleiman quarta-feira, 11 de janeiro de 2017 18:55
-
Olá! Boa noite, Rodrigo!
Obrigado por me respostar. Mas, a sua sugestão não funcionou. Continua dando erro na mesma linha de código.
O objetivo do botão btTecla1_Click, e, quando a criança apertar o botão o som saia ao mesmo tempo que o som de fundo tocado Media Player.
-
Ola DesignWeb,
Faz o teste desta forma abaixo
SoundPlayer my_wave_file = new SoundPlayer("C:\\PASTA\\ARQUIVO.wav"); my_wave_file.Play();
Se ajudei Vote como Útil, se resolvi seu problema clique em Marcar como Resposta.
Daniel Ribeiro Arrais
Consultor Sênior
Site: www.danielarrais.com.br
Linkedin: http://www.linkedin.com/in/danielarrais
E-mail: arraishapkido@gmail.com
Skype: dani.arrais
-
Boa tarde, Daniel!
Obrigado por me responder. Mas, eu já fiz essa pesquisa e fiz o teste com esses códigos que você acabou de me passar.
Mas, você não me entendeu.
Ele toca normalmente, mas não é assim que eu quero. Tem que tocar tudo ao mesmo tempo no Windows Media Player.
Você lembra como funciona um teclado musical?
Você aperta um botão, e toca um ritmo musical, daí, ao mesmo tempo você aperta as teclas do instrumento musical e ambos emitem os sons.
Entendeu?!
Tem como resolver o problema?
-
Bom dia,
Verifique as sugestões neste link.
Atenciosamente,
Robson William Silva
Esse conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita
MSDN Community Support
Por favor, lembre-se de Marcar como Resposta as postagens que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.
- Marcado como Resposta Robson William SilvaModerator quarta-feira, 18 de janeiro de 2017 11:22
-
Bom dia,
Devido a falta de interação do autor dessa pergunta,
essa thread está sendo fechada. Caso o problema ainda
esteja ocorrendo, favor abrir uma nova thread.
Atenciosamente,
Robson William Silva
Esse conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita
MSDN Community Support
Por favor, lembre-se de Marcar como Resposta as postagens que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.