Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Android:创建可循环的音调_Java_Android_Audio - Fatal编程技术网

Java Android:创建可循环的音调

Java Android:创建可循环的音调,java,android,audio,Java,Android,Audio,我一直在尝试生成一个444赫兹、1000赫兹等的音调,然后在安卓系统中播放。我的第一次搜索给了我一个堆栈溢出问题。虽然这在给定持续时间的情况下非常有效,但我更愿意使持续时间无限循环成为可能 首先,我只对音调使用整数值,因为这意味着我可以使用1秒,它应该正确循环。然而,仍然有一些频率循环不正确 第二,我想我只能计算出正弦波的一个周期,然后循环。然而我发现 给定任何频率,如何生成可以循环的音调?您可以创建一个线程,该线程将在每个时间段内运行您的音调,例如2sec.: private Runnable

我一直在尝试生成一个444赫兹、1000赫兹等的音调,然后在安卓系统中播放。我的第一次搜索给了我一个堆栈溢出问题。虽然这在给定持续时间的情况下非常有效,但我更愿意使持续时间无限循环成为可能

首先,我只对音调使用整数值,因为这意味着我可以使用1秒,它应该正确循环。然而,仍然有一些频率循环不正确

第二,我想我只能计算出正弦波的一个周期,然后循环。然而我发现


给定任何频率,如何生成可以循环的音调?

您可以创建一个线程,该线程将在每个时间段内运行您的音调,例如2sec.:

private Runnable startSoundRunnable = new Runnable() {
  @Override
  public void run() {
    while (true) {
      try {
        toneGenerator.startTone(ToneGenerator.TONE_CDMA_ALERT_AUTOREDIAL_LITE, 2000);
        sleep(2000);
      } catch (Exception ex) {}
    }
  }
};

// Run thread
new Thread(startSoundRunnable).start();

你用什么来播放音频?推送到AudioTrackHi@Flynn的字节数组,16位PCM的循环是如何实现的?你有没有想过?