【问题标题】:Creating a sound file composed of smaller files创建由较小文件组成的声音文件
【发布时间】:2017-10-23 20:29:02
【问题描述】:

我正在编写一个采用摩尔斯电码并通过扬声器播放的应用程序。

目前我可以使用此代码通过麦克风录制音频:

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 文件中创建文件。我看过一些帖子提到将音频源设置为来自设备的文件,但我不知道如何挑选和选择哪个文件以及在哪里插入它们,或者如何将它们全部编译成一个音频文件。

【问题讨论】:

标签: java android audio wav mediarecorder


【解决方案1】:

与其创建一个新的声音文件并进行播放,不如单独播放每个声音,当该声音结束时,您播放下一个声音,或者如果它是一个空格,则等待一个短暂的暂停可能会更容易。

【讨论】:

    【解决方案2】:

    我认为您正在尝试以更难的方式做到这一点。如果你只是让程序读取第一个字母,播放适当的声音,对下一个字母做同样的事情等等。我相信它要简单得多,但如果你真的想把它放到一个文件中,你可以让程序创建一个空文件,但它设置的名称具有扩展名 `.wav` 或 `.mp3` 并进行研究了解它们的编码方式。

    【讨论】:

      猜你喜欢
      • 2019-07-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-16
      • 1970-01-01
      相关资源
      最近更新 更多