iOS音频频谱动画,仿QQ录音频谱

先上效果图:

display.gif

有需要的请移步GitHub下载:
https://github.com/HuangGY1993/GYSpectrum

用法很简单,示例:

SpectrumView * spectrumView = [[SpectrumView alloc] initWithFrame:CGRectMake(CGRectGetMidX(self.view.frame) - 100,180,200, 40.0)];
spectrumView.text = [NSString stringWithFormat:@"%d",0];
__weak SpectrumView * weakWaver = spectrumView;
spectrumView.itemLevelCallback = ^() {

[self.audioRecorder updateMeters];

//取得第一个通道的音频,音频强度范围是-160到0
float power = [self.audioRecorder averagePowerForChannel:0];
weakWaver.level = power;

};
[self.view addSubview:spectrumView];

使用前请注意:

SpectrumView.frame.size.width / SpectrumView.numberOfItems >= 5

默认SpectrumView.numberOfItems = 20 (可修改,必须为偶数),所以SpectrumView.frame.size.width默认要大于100
例如:SpectrumView * spectrumView = [[SpectrumView alloc] initWithFrame:CGRectMake(0,0,100,40)];


作者:Genie_GY
链接:https://www.jianshu.com/p/502c69062d9e
来源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。
posted @   brave-sailor  阅读(788)  评论(0编辑  收藏  举报
编辑推荐:
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
历史上的今天:
2017-05-17 Xcode8 - apploader 上传失败 - ERROR ITMS-90168: "The binary you uploaded was invalid."
2016-05-17 Android中View和ViewGroup介绍
2016-05-17 android之interpolator的用法详解
2016-05-17 Android - View绘图原理总结
2016-05-17 代码讲解Android Scroller、VelocityTracker
2016-05-17 Android Touch系统简介(二):实例详解onInterceptTouchEvent与onTouchEvent的调用过程
2016-05-17 Android的Touch系统简介(一)
点击右上角即可分享
微信分享提示