【问题标题】:Playing a sound while drawing a line with Sprite Kit使用 Sprite Kit 画线时播放声音
【发布时间】:2015-03-23 17:14:19
【问题描述】:

我正在考虑在 iOS 中使用 Sprite Kit 制作一个绘图应用程序,使用 swift 或 Objective C。

有一个教程here 展示了如何使用精灵套件绘制一条线。这很棒,但对于我的应用程序,我想要更多。我希望应用程序在绘制线条时播放音效。声音的音调取决于用户画线的速度。用户移动手指的速度越快,声音的音调就越高。我发现关于在 sprite kit 中播放声音的所有内容都是背景音乐和播放单个声音。有人能指出我实现目标的正确方向吗?

【问题讨论】:

  • 右方向 - 使用 touchesMoved 方法跟踪触摸坐标变化的速度并相应地运行声音代码。顺便说一句,AVAudioPlayer 没有音高功能,因此您必须为此提出自己的解决方案。
  • 正如@sangony 所说,AVAudioPlayer 不支持此类功能。您应该查看其他音频 API。例如,您可以尝试使用 AUSampler 音频单元。有一个名为 AU Lab 的免费应用程序,您可以使用它来创建一个 aupreset 文件,然后由 AUSampler 加载。要了解有关 Apple 音频 API 和音频单元的更多信息,我会向您推荐这本书 amazon.com/Learning-Core-Audio-Hands-On-Programming/dp/…

标签: ios audio sprite-kit


【解决方案1】:

您可能希望在很短的持续时间(可能是 0.25 秒?您需要尝试,但他们会都必须是相同的持续时间)。

假设您有 30 个不同的样本,line-0.wav .. line-29.wav。然后您需要做的就是适当地计算用户拖动的速度,并使用一些函数将拖动速度的可能范围映射到样本索引的整数范围。只要在拖动过程中,就反复播放相应的声音。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-03-31
    • 2022-07-08
    • 2017-01-24
    • 1970-01-01
    • 1970-01-01
    • 2021-09-05
    • 2011-01-23
    • 1970-01-01
    相关资源
    最近更新 更多