我有68个钢琴样品,每个大约。174 kB,Ogg数据,Vorbis音频,立体声,s16、44100 Hz,352 kb / s,4秒。
我需要同时发挥他们的不同组合(音乐术语:谐波和弦/间隔),例如1st + 7th,14th + 22nd等等。
另外:当前的“播放”需要一个选项来在t毫秒后停止播放。
一个明显的解决方案似乎是使用SoundPool。设置好之后maxStreams = 20,我将.load()所有样本都放入了。对于每个播放请求,future都会创建一个线程(确实是:Scala的),等待给定t millis,然后停止所有声音。
它似乎正常工作。
这样SoundPool,当同时播放2个(或更多)声音时,有时可能无法完全同时启动它们,当然可以听到它们的开始时间略有不同。但是,大多数时候都可以。
停止还有一个问题,有时一双可以“持续”更长的时间,但同样,通常在我想要的时候结束。
最后,真正奇怪的是:每.play()一个都是第一个之后的:
... 不会发出声音!
Android是否向我们提供了更可靠(就时序一致性而言)使用的声音池实现?
如果我创建68个线程(每个声音一个线程),也许会更好?...我不这么认为。
我已经创建了实现媒体播放器类的服务来播放背景音乐.但是现在我想转换成声音池以便可以播放多个声音.可以帮助任何可以为我提供源代码的一些链接?
提前致谢.