以图形方式将声音表示为波
Posted
技术标签:
【中文标题】以图形方式将声音表示为波【英文标题】:representing sound graphically as wave 【发布时间】:2012-02-15 16:12:45 【问题描述】:我创建了一个可以录制和播放声音的应用程序,我正在寻找一种显示简单波形的方法 表示录制的声音,不需要动画,只是一个简单的图表。
如果可以选择 wave 的一个子集当然更好 也播放该部分。
总结一下,我在找什么:
-
一种将录制的声音以图形方式表示为波的方式(例如,在大胆中看到)
一种以图形方式选择波形表示子集的方法。
进一步澄清我在寻找什么:
-
如果有这样的库,我会非常高兴:)
关于最适合用于处理图形绘制的组件的提示。
关于如何处理图形组件中的选择的提示。
【问题讨论】:
图表的轴应该是什么?数量与时间?时间积分量与频率? 测试版:是的,x 轴的时间,以及为 y 轴提供最佳表示(体积?)的任何东西。 您已经知道如何编写应用程序,并且我认为您知道如何操作声音文件,所以这是显示图形和/或 GUI 的问题。我不知道您对这些主题了解多少,所以我建议您编辑您的问题以澄清您需要帮助的内容。 (我对 ios 图形知之甚少,所以我可能帮不了你。) 我主要是在图形方面寻求帮助,即为此使用哪些组件以及为什么。添加了更多信息以澄清我的请求,感谢您的反馈,Beta。 @tommys 请检查我的更新答案 【参考方案1】:我已经在另一个应用程序中这样做了,并且已经为此苦苦挣扎了一段时间......
您可以将音频文件的样本数除以显示图形所需的像素数。这给了你一个块大小。 对于所有“桶”,您计算最小值和最大值并根据所使用的样本分辨率显示它们。
如果需要,可以提供更多示例。
关于图形的东西: (我不是 iOS 开发人员,但我认为 Mac 编程并没有太大的不同。) 只需创建一个 NSView 的子类(在 iOS 中应该是 UIView )并覆盖 drawRect 方法。 然后只需创建一个函数,为您的文件传递一组值并在屏幕上绘制一堆线。这里不是黑魔法!!
这真的不是你需要图书馆的东西! 而且,作为另一个积极方面:如果你保持它足够通用,你总是可以重复使用它。
【讨论】:
谢谢,你的 override-strategy 听起来是个不错的方法。我猜想同一个类也可以捕获并存储一个表示通过捏合所做选择的 x 间隔,并在 drawRect 方法中使用这些坐标进行绘制和覆盖。很抱歉这么长的评论,但我有点忘乎所以:) 我总是喜欢帮忙!!特别是如果它在我的“家乡”。我还拥有音频工程文凭;)如果您需要更多信息,请联系我。最佳 开始按照您的建议实施图表,非常棒。我之前只使用 AVAudioPlayer 进行过简单的播放任务,因此对于如何阅读可用于绘图的 mp3 信息的任何帮助将不胜感激! 您必须先对其进行解码才能获得实际值。这个问题似乎正在解决这个确切的问题***.com/questions/6902730/… 我使用的是 mpg123 库,因为我使用的是 C++ 而不是 objc以上是关于以图形方式将声音表示为波的主要内容,如果未能解决你的问题,请参考以下文章