我建立在我所使用AVAudioPlayer做iphone的音乐应用程序,它播放音乐成功。如何在iPhone中生成正弦波w.r.t歌曲?
但现在我的要求是产生屏幕上的波形(正弦/平方米/数字/模拟)作为音乐开始播放音乐文件结束后停止波。
我该怎么做?
我建立在我所使用AVAudioPlayer做iphone的音乐应用程序,它播放音乐成功。如何在iPhone中生成正弦波w.r.t歌曲?
但现在我的要求是产生屏幕上的波形(正弦/平方米/数字/模拟)作为音乐开始播放音乐文件结束后停止波。
我该怎么做?
也许你可以使用core-plot项目吸引你的曲线。
这是一个非常好的博客文章,显示如何绘制波形:Drawing Waveforms
它还包含提示如何与大缓冲区数据减少交易。
编辑:
这篇文章是为Mac OS X编写的,但因为它使用Quartz来显示波形,它应该工作在iPhone上的罚款。
就产生正弦波更容易。 好,我实现正弦波入的UIView的drawRect方法如下:
float x=75;
float yc=50;
float w=0;
while (w<=rect.frame.size.width) {
CGPathMoveToPoint(path, nil, w,y/2);
CGPathAddQuadCurveToPoint(path, nil, w+x/4, -yc,w+ x/2, y/2);
CGPathMoveToPoint(path, nil, w+x/2,y/2);
CGPathAddQuadCurveToPoint(path, nil, w+3*x/4, y+yc, w+x, y/2);
CGContextAddPath(context, path);
CGContextDrawPath(context, kCGPathStroke);
w+=x;
}
在此,x是每个正弦波的宽度,而y是所述框架的高度。这将绘制数量的正弦波以适应整个UIViewFrame。它会产生清脆的正弦波,并且yc是控制手柄。尝试一下,你可能会喜欢它。
如果宽度即x与框架的宽度相似,则会产生单个正弦波。
完整正弦波的数量=(帧的宽度)/('x'每个正弦波的宽度) 现在,尝试调整相对于音频功率的波的幅度和频率。