Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/357.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_Synthesizer - Fatal编程技术网

Java 简单的android音频序列器实现

Java 简单的android音频序列器实现,java,android,audio,synthesizer,Java,Android,Audio,Synthesizer,我想为Android创建一个简单的音频序列器应用程序(如FL、GarageBand等)。然而,我被困在操纵音频。特别是,我应该如何实现音频播放(即播放录制的音频),是否有任何库可以使用,或者最好只使用默认的Java方法?最近我发现了双簧管,但我不确定它是否适合这个用途 我使用原始文件作为音频源(如钢琴音符),并使用AudioTrack访问它们。如果用于音频输出的android环境类似于Java,那么获得精确计时的最佳方法是计算PCM帧,并使用它来保持所有元素对齐。我对Android做的不多,但我

我想为Android创建一个简单的音频序列器应用程序(如FL、GarageBand等)。然而,我被困在操纵音频。特别是,我应该如何实现音频播放(即播放录制的音频),是否有任何库可以使用,或者最好只使用默认的Java方法?最近我发现了双簧管,但我不确定它是否适合这个用途


我使用原始文件作为音频源(如钢琴音符),并使用AudioTrack访问它们。

如果用于音频输出的android环境类似于Java,那么获得精确计时的最佳方法是计算PCM帧,并使用它来保持所有元素对齐。我对Android做的不多,但我认为用于输出的类是
AudioTrack
,因为它允许您对PCM进行流式处理。我希望确保您的所有声音都可以转换为PCM,并使用该数据表进行混音和效果处理,然后通过
AudioTrack
输出

我没看过双簧管。也许它已经拥有了所需要的一切。我是个守旧派——只是最近才学会找图书馆,而不是重新发明轮子


这里有一个关于输出PCM的例子。

如果用于音频输出的android环境类似于Java,那么获得精确定时的最佳方法是计算PCM帧,并使用它来保持所有元素对齐。我对Android做的不多,但我认为用于输出的类是
AudioTrack
,因为它允许您对PCM进行流式处理。我希望确保您的所有声音都可以转换为PCM,并使用该数据表进行混音和效果处理,然后通过
AudioTrack
输出

我没看过双簧管。也许它已经拥有了所需要的一切。我是个守旧派——只是最近才学会找图书馆,而不是重新发明轮子


这里有一个关于输出PCM的例子。

在Android上,对于本机音频应用程序,我建议使用双簧管。 打开单个输出流,然后将所有曲目混合到单个流。正如另一个Phil建议的那样,使用帧计数作为定时参考


您可以使用该应用程序作为起点,因为它将多个WAV样本混合到一个输出中。

在Android上,对于本机音频应用程序,我建议使用双簧管。 打开单个输出流,然后将所有曲目混合到单个流。正如另一个Phil建议的那样,使用帧计数作为定时参考


您可以使用该应用程序作为起点,因为它将多个WAV样本混合到一个输出中。

您也可以看看我正在使用的这个库:

它将允许您混合不同的示例文件,尽管播放部分需要作为自定义输出自行完成。它在Kotlin上,目前不确定它是否能与Java无缝地工作

代码如下所示(对于预定义的混合):

val静默=输入{ZeroSample}
val样本1=wav(“file://sample1.wav")
val样本2=wav(“file://sample1.wav")
val track1=sample1..silence.trim(100毫秒)…sample1
val track2=sample2..silence.trim(10毫秒)…sample2..silence.trim(10毫秒)…sample2
val mix=轨道1+轨道2
混合输出{
/**
*下面是执行回放的输出代码
*跟随https://wavebeans.io/docs/api/outputs/output-as-a-function.html
*/
}
//并通过以下方式评估输出:https://wavebeans.io/docs/exe/

您也可以看看我正在使用的这个库:

它将允许您混合不同的示例文件,尽管播放部分需要作为自定义输出自行完成。它在Kotlin上,目前不确定它是否能与Java无缝地工作

代码如下所示(对于预定义的混合):

val静默=输入{ZeroSample}
val样本1=wav(“file://sample1.wav")
val样本2=wav(“file://sample1.wav")
val track1=sample1..silence.trim(100毫秒)…sample1
val track2=sample2..silence.trim(10毫秒)…sample2..silence.trim(10毫秒)…sample2
val mix=轨道1+轨道2
混合输出{
/**
*下面是执行回放的输出代码
*跟随https://wavebeans.io/docs/api/outputs/output-as-a-function.html
*/
}
//并通过以下方式评估输出:https://wavebeans.io/docs/exe/

到时候我会看一看,谢谢!那我就去看看,谢谢!