如何在Android中制作可变长度的声音
Posted
技术标签:
【中文标题】如何在Android中制作可变长度的声音【英文标题】:How to make a variable length sound in Android 【发布时间】:2014-04-10 06:39:50 【问题描述】:我正在尝试制作一个像钢琴风琴一样演奏声音的应用程序。当用户按下按钮时,它将播放类似钢琴的声音。困难在于用户可以将手指按住任意长的时间。当他们抬起手指时,应该会消失而不是突然停止。
我玩过 SoundPool 和 Media Player,但它们似乎不适合。
那里有很多钢琴应用程序...有人知道他们是如何解决这个问题的吗?
【问题讨论】:
您可能想研究在软件中实现some sort of envelope。 【参考方案1】:您需要使用 AudioTrack 类。基本用法是使用 AudioTrack 的 write()
方法在您希望听到它的任何持续时间写入您的声音数据。您需要为要“播放”的每个同时发出的声音使用单独的线程。
这里是AudioTrack reference page 和这里是a blog entry,作者很好地展示了如何在没有太多干扰的情况下做什么。
【讨论】:
谢谢,我查看了piano.zip 文件中的代码,并且按钮确实可以播放可变长度。以上是关于如何在Android中制作可变长度的声音的主要内容,如果未能解决你的问题,请参考以下文章
如何在 UITableView 中优雅地处理来自网络的可变长度文本?
如何在 TensorFlow 中处理具有可变长度序列的批次?