Android 混合原始声音。源是java数组而不是文件或资源

Posted

技术标签:

【中文标题】Android 混合原始声音。源是java数组而不是文件或资源【英文标题】:Android mixing raw sounds. Source is java arrays not files or recourses 【发布时间】:2012-12-16 22:46:25 【问题描述】:

我有未压缩原始格式的音频数据作为 java 数组。 短 [] 或字节 [] 我希望在 android 中播放它们。

SoundPool 看起来像我需要的,但我找不到从内存中加载数据的方法。它仅从文件加载,我不确定如何指定它是原始数据的格式。

【问题讨论】:

【参考方案1】:

AudioTrack 类具有write(...) 方法,它们接受byte[]short[] 作为源参数。这是我所知道的唯一一个 Android 声音类。

【讨论】:

我看到了AudioTrack的例子,它经常以多线程方式使用。是否可以在单线程中使用它来混合 10 通道与 FX 效果,如爆炸和其他短声?它是混合软件还是硬件?【参考方案2】:

名为libpd 的库可以为您提供许多Android 所缺乏的音频功能。学习曲线有点陡峭,但功能强大。

【讨论】:

以上是关于Android 混合原始声音。源是java数组而不是文件或资源的主要内容,如果未能解决你的问题,请参考以下文章

混合不同大小的声音文件

Android/iOS:通过流混合改善实时流媒体体验

Android/iOS:通过流混合改善实时流媒体体验

在 Java 中混合声音?

在 Android 上录制和播放声音而不存储临时文件

Android:如何混合 2 个音频文件并使用 soundPool 重现它们