我正在编写一个采用摩尔斯电码的应用程序,并在扬声器上播放。
目前,我可以使用以下代码在麦克风上录制音频:
public void startRecord() throws Exception{
if (record != null){
record.release();
}
File fileOut = new File(FILE);
if (fileOut != null){
fileOut.delete(); // delete any existing file at that location.
}
record = new MediaRecorder();
record.setAudioSource(MediaRecorder.AudioSource.MIC);
record.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
record.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
record.setOutputFile(FILE);
record.prepare();
record.start();
}
我可以在格式如下的字符串中生成莫尔斯代码:
"-.... .---- -.... -.-. -.... ..... --... ---.."
我可以使用for循环遍历此字符串,例如:
char[] chars = message.toCharArray();
for (char ch : chars) {
//add to audio file
}
但我不知道如何使用串联的wav文件创建文件。我看过一些帖子提到将音频源设置为来自设备的文件,但我不知道如何选择哪个文件以及插入它们的位置,或者如何将它们全部编译成单个音频文件。
答案 0 :(得分:0)
不是创建一个新的声音文件并播放它,而是单独播放每个声音可能更容易,当声音结束时,你播放下一个声音,或者等待一个短暂的暂停,如果它是一个空格。 / p>
答案 1 :(得分:0)
我认为你正试图以更难的方式做到这一点。如果您只是简单地让程序读取第一个字母,播放适当的声音,为下一个字母执行相同操作等等,那么该怎么办?我相信它更简单但是如果你真的试图将它放到一个文件中你可以让程序创建一个空文件,但它的名称设置扩展名为`.wav`或`.mp3`并做研究如何编码。