- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
这是我正在尝试做的事情:
截图取自iPhone 6s。
我一直在 AVAudioPlayer 中工作,我想绘制一个看起来像第一个屏幕截图的波形。我正在使用 FDWAVEFORMVIEW用于绘制波浪的 Github pods。但我很困惑如何绘制相同的波浪。
代码:
@IBOutlet weak var soundWaveView: FDWaveformView!
func createSoundWave() {
soundWaveView.delegate = self
soundWaveView.alpha = 0.0
soundWaveView.audioURL = mainTrackURL
soundWaveView.zoomSamples = 0 ..< soundWaveView.totalSamples / 3
soundWaveView.doesAllowScrubbing = true
soundWaveView.doesAllowStretch = true
soundWaveView.doesAllowScroll = true
soundWaveView.wavesColor = .lightGray
soundWaveView.progressColor = UIColor.init(red: 46/255, green: 188/255, blue: 191/255, alpha: 1.0)
}
func waveformViewWillRender(_ waveformView: FDWaveformView) {
startRendering = Date()
}
func waveformViewDidRender(_ waveformView: FDWaveformView) {
endRendering = Date()
NSLog("FDWaveformView rendering done, took %0.3f seconds", endRendering.timeIntervalSince(startRendering))
profileResult.append(String(format: " render %0.3f ", endRendering.timeIntervalSince(startRendering)))
UIView.animate(withDuration: 0.25, animations: {() -> Void in
waveformView.alpha = 1.0
})
}
func waveformViewWillLoad(_ waveformView: FDWaveformView) {
startLoading = Date()
}
func waveformViewDidLoad(_ waveformView: FDWaveformView) {
endLoading = Date()
NSLog("FDWaveformView loading done, took %0.3f seconds", endLoading.timeIntervalSince(startLoading))
profileResult.append(String(format: " load %0.3f ", endLoading.timeIntervalSince(startLoading)))
}
问题:如何显示与原图(第一张截图)相同的波浪?
有人可以向我解释一下如何绘制这些波浪吗,我已经尝试绘制这些波浪但还没有结果。
如有任何帮助,我们将不胜感激。
提前致谢。
最佳答案
啊,波形图...从外观上看,您可能需要 fork 它并进行更改,因为 FDWaveformRenderOperation
不支持这种样式。
它看起来您可以修改FDWaveformRenderOperation
中的plotWaveformGraph
方法来实现此目的。目前,它遍历缓冲区中的 每个 样本,但如果相反,您维护一个 index
,它每第 n 个样本(“宽度”栏)加上“间距”栏递增”,你可以得到这个外观。需要明确的是,这是一种天真的方法。理想情况下,您可以对“条形”中的样本进行平均并绘制该值。
这不是编译代码,但应该为您提供一个起点。
let barWidth: CGFloat = 2.0
let barSpacing: CGFloat = 2.0
var x = 0
while x < samples.count { {
let sample = samples[x]
let height = (sample - min) * sampleDrawingScale
context.move(to: CGPoint(x: CGFloat(x), y: verticalMiddle - height))
context.addLine(to: CGPoint(x: CGFloat(x), y: verticalMiddle + height))
context.setLineWidth(barWidth) // note: stroke width straddles the path, so play with this
context.strokePath();
x += barWidth + barSpacing
}
简陋的插件,但你可以在我的 waveform drawing framework 中看到我是如何做到这一点的.这通常是概念证明并且未优化。 :)
关于ios - 创建 Waves 可视化歌曲 Swift,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57653107/
我想修复我网站上 WAVE 工具中的错误:http://human2.com.pl/错误是: [网址= https://gifyu.com/image/sUbw][img]https://s1.gif
波浪是否仅限于共享文本信息 (HTML),或者我是否正确地假设波浪可以包含任意数据(以 XML 表示),只要它还包含以有意义的方式呈现它所需的 javascript? 我问是因为Google I/O视
我的理解是 Google wave 是一种通信和协作工具。但它仅限于 IM/Twitter 类型的界面还是可以做得更多?它可以是与自上而下的对话格式完全不同的东西吗? 假设我想使用 google wa
如何链接到 Google Wave,例如在网站或电子邮件中,例如 Hey, just have a look to this new Wave I created. ,在哪里???正是我要找的。 最佳
有没有办法部署使用 H2O wave 创建的应用程序? 我最近制作了一个数据可视化应用程序,希望人们能够快速轻松地演示它。 我试过关注这个话题:Deploy H2O Wave application
Google Wave 中使用的操作转换 Material 具有相当奇特的文档格式。文档基本上只是一个 xml 子集文档 - 字符、开始标签和结束标签。除此之外,文档还有“注释”,它们是与范围相关的元
我想知道是否有可用的工具/框架支持在 Google Wave 之外测试 Google Wave 小工具。 我知道这两个模拟器(1 和 2),但我仍然必须为每次调试运行上传我的小工具。 我正在寻找一种工
我真的是编程新手,所以你们的任何帮助都会很有帮助,我将非常感激。顺便说一下,这是 C++。我有一个 wave 文件,我成功地读取了它的标题。我想创建另一个 wave 文件,将第一个 wave 文件的所
我有一个原始立体声音频文件。 它是树莓派上噪声消除系统的一部分,麦克风 1 将主要声音记录到左声道,麦克风 2 将周围的噪音记录到右声道。目标是从左 channel 中减去右 channel 。我将写
我正在尝试学习一些有关音频编程的知识,因此我决定看看是否可以弄清楚如何生成正弦波并将其写入 .wav 文件。来自引用 here ,我认为每个 channel 只是在文件末尾的数据 block 中交错。
接收错误在 @waves/waves-crypto 中找不到 crypto-js。我尝试通过 npm 卸载并重新安装模块,并使用 *wavesCrypto 导入模块,但模块本身文件 index.d.t
我正在寻找一种方法,可以使用 python 将多个 wave 文件组合成一个 wave 文件并在 linux 上运行它。除了默认的 shell 命令行和默认的 python 模块之外,我不想使用任何附
这让我头疼了一天,但既然我已经弄明白了,我想把它贴在某个地方以防它有帮助。 我正在使用 python 的 wave 模块将数据写入 wave 文件。我没有使用 scipy.io.wavfile,因为数
此代码生成的 WAV 文件在许多应用程序中不起作用。 当我 checkin RIFFVIEWER 应用程序时,它提示 RIFF 长度无效。 BWFMetaEdit 声称文件已被截断。一些宽容的应用程序
(在我问我的问题之前;我真的不知道是否有人可以回答我的问题,因为 Z-wave 协议(protocol)应该是 secret 信息,但如果它确实违反了任何类型的法规,那么我会觉得免费删除此帖子。) 我
数字声音正在使用DirectSound设备播放。像模拟设备一样,必须以分贝显示声音事件。 从WAVE PCM数据(44100 Hz,16位)计算声压的正确方法是什么? 最佳答案 如果您只需要一个“理想
我一直在研究试图理解声音和正弦波的工作方式,尤其是和弦。到目前为止,我的理解如下: b(t) = sin(Api(t)) 是频率为 A 的和弦的基音。 T(t) = sin(5/4piA(t)) 是基
img{ width: 150px; height:150px; float:left; } var img = undefined, section = documen
我想“设计”google wave 并在我的博客/网站上试用它?是否可以修改 Google Wave 的源代码?它在哪里可用? 有没有人做过这样的事情? 最佳答案 如前所述,您可能想要 embed a
所以基本上我试图读取波形文件的信息,以便我可以获取字节信息并创建时间->幅度点的数组。 import wave class WaveFile: # `filename` is the name
我是一名优秀的程序员,十分优秀!