Esse é meu primeiro post em um forum.
Como vocês podem perceber pela minha pergunta estou começando a aprender agora a linguagem Java, rsrs...
Resolvi começar meus estudos com o livro Use a Cabeça Java e tem um código escrito nele que esta dando erro na hora da execução e eu não consegui resolver, alguém pode me ajudar por favor?
O código está escrito igual no livro
javax.sound.midi.InvalidMidiDataException: command out of range: 0x72
at javax.sound.midi.ShortMessage.setMessage(Unknown Source)
at MiniMiniMusicApp.play(MiniMiniMusicApp.java:20)
at MiniMiniMusicApp.main(MiniMiniMusicApp.java:7)
Na linha 20 do seu código altere o 44 para 20. Assim:
a.setMessage(114,1,20,100);
Traduzindo o seu erro diz que você deu um dado inválido como argumento que está fora da taxa de dado válida.
D
diegosczcepanik
Ainda não deu certo.
Deu o mesmo erro.
Essa questão de ler o erro eu realmente ainda não consegui entender direito,
essa saida de erro
javax.sound.midi.InvalidMidiDataException: command out of range: 0x72
at javax.sound.midi.ShortMessage.setMessage(Unknown Source)
at MiniMiniMusicApp.play(MiniMiniMusicApp.java:20)
at MiniMiniMusicApp.main(MiniMiniMusicApp.java:7)
Significa que o
metodo play() esperava 20 como retorno
e o metodo main() esperava 7 como retorno.
Ou nada haver, estou viajando?
wagnerfrancisco
Não Diego, 20 e 7 são o número das linhas. Quando uma exceção é lançada é impressa a stack trace, as linhas onde o programa executou ao lançar a exceção.
Nesse caso, ele passou no método main da classe MiniMiniMusicApp (linha 7), no método play (linha 20) e no método setMessage da classe ShortMessage (como vc não tem o código-fonte dela, não é possível especificar a linha). Depois vem a exceção especificamente.
E quando à exceção, eu desconheço esta api de manipulação midi, não posso lhe ajudar.
lucas_guj
O wagnerfrancisco esclareceu o seu entendimento errado sobre o erro. E você não deve ter feito o que eu falei. Copie e cole o código:
Entendi a questão da leitura da saída de erro, valeu pessoal.
Quanto ao codigo Lucas eu já tinha tentado o que vc me disse e não tinha dado certo.
Ai por desencargo de consciência copiei o seu codigo e colei e deu o mesmo erro.
Eu estava vendo no livro que este argumento que você está pedindo para alterar seria referente a nota chamada, seria esse o erro mesmo?