Mic*_*Rus 5 audio time android soundpool
我有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个线程(每个声音一个线程),也许会更好?...我不这么认为。
蒂亚戈·罗莎 (Thiago Rosa) 写道,他克服了SoundPool
\n\n\n(...) 通过循环播放静音 (...)
\n\n经过几次测试,我注意到有时 \xe2\x80\x9cplay\xe2\x80\x9d 函数需要 8ms 才能执行,有时会立即执行。
\n\n结论,看来当没有播放任何内容时,SoundPool正在重置,当再次播放时,需要时间来初始化。
\n
但我不太相信。有效率吗?电池呢?
\n\n我的测试表明它绝对值得一试。现在样本播放一致,在几百次测试中只有 3-4 次出现了一点停顿。另外两个问题(根本不播放和停止时间不一致)现在也消失了!
\n\n然而,电池问题仍然悬而未决......
\n| 归档时间: |
|
| 查看次数: |
2802 次 |
| 最近记录: |