Java Morse Code Translator只能发出两声嘟嘟声

时间:2014-01-27 17:56:06

标签: java java-io audio beep audio-player

我试图制作一个获取字符串消息的莫尔斯电码转换器,并将其转换为与摩尔斯电码相对应的一系列哔声。我目前的问题是,当我运行该程序时,我只能听到太哔声。

import java.util.Scanner;
import  sun.audio.*;    //import the sun.audio package
import  java.io.*; 

public class Morse{
public static void main(String args[]){
Scanner sc = new Scanner(System.in);
AudioPlayer MGP = AudioPlayer.player;
AudioStream BGM;
AudioStream BGM2;
try
{
  InputStream test = new FileInputStream("beep-1.wav"); //long beep
  InputStream test2 = new FileInputStream("beep-7.wav"); //short beep
  BGM = new AudioStream(test);
  BGM2 = new AudioStream(test2);

  System.out.println("Bienvenido al traductor de código Morse.");
  System.out.println("Por favor escriba el texto que desea traducir.");
  String mensaje = sc.nextLine();
  char l;

  for(int n = 0; n < mensaje.length(); n++){
  //here goes the sounds
  l = mensaje.charAt(n);
  }

例如,我为a和b得到了以下内容:

if(l == 'a' || l == 'A'){ //a = *-
     AudioPlayer.player.start(BGM2);
     Thread.sleep(1000);
     AudioPlayer.player.start(BGM);
     Thread.sleep(1000);
} else if(l == 'b' || l == 'B'){ //b = -***
      AudioPlayer.player.start(BGM);
      Thread.sleep(1000);
      AudioPlayer.player.start(BGM2);
      Thread.sleep(1000);
      AudioPlayer.player.start(BGM2);
      Thread.sleep(1000);
      AudioPlayer.player.start(BGM2);
      Thread.sleep(1000);
      }

大多数其他字母都具有相同的格式,因此,如果我输入Ab,我应该期待以下内容: 短促的哔哔 - 长哔 - 短蜂鸣 - 短蜂鸣 - 短蜂鸣 - 短蜂鸣声

但是,我只会发出短促的哔哔声。

字母e发生了类似的事情(莫尔斯电码只是一声短促的哔声):

else if(l == 'e' || l == 'E'){ //e = *
    AudioPlayer.player.start(BGM2);
    Thread.sleep(1000);
}

如果输入Ee,我会发出短促的哔哔声,但我只发出一声短促的哔哔声。

知道为什么会这样吗?

0 个答案:

没有答案