所以我想创建可以将文本转换为摩尔斯电码(文本 - 文本,文本 - 音频,文本 - 灯光)的应用程序。文本到文本转换器已经完成,接下来是将莫尔斯代码从文本转换为音频。问题是,当我想播放2个音频时(一个用于点,另一个用于短划线),它们总是同时播放,因为我为我的代码添加了if
语句。那么,我的代码与我的代码有什么关系,所以应用程序可以在点声后发出点声音或点声后发出声音?
我的意见是,我将所有摩尔斯电码(文字)都放到queue
,然后一个接一个地比较点和短划线。
public void morseSound(View view) {
String value = sentences;
final MediaPlayer dot = MediaPlayer.create(this, R.raw.beep1);
final MediaPlayer dash = MediaPlayer.create(this, R.raw.beep2);
Button playSound = (Button) this.findViewById(R.id.btnMorse2);
// List<Character> mString = new ArrayList<>();
// for (int i = 0; i < sentences.length(); i++) {
// mString.add(value.charAt(i));
// }
// TextView test = (TextView) findViewById(R.id.test);
// test.setText(mString.toString());
playSound.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
for (int i = 0; i < sentences.length(); i++) {
if (sentences.charAt(i) == '-') {
dash.start();
} else dot.start();
}
}
});
}