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