是不是不支持m4a格式的音频了?
protosse opened this issue · 7 comments
我用这个podcast http://screencasts.b0.upaiyun.com/podcasts/teahour_episode_82.m4a 做了个测试,会崩在findMaxAmplitude这个函数。
你好,我试了一下并没有发现什么问题,动画能正常显示呢。测试环境是 Xcode 10.2.1 模拟器是 iPhone XS 12.2
你好,我试了一下并没有发现什么问题,动画能正常显示呢。测试环境是 Xcode 10.2.1 模拟器是 iPhone XS 12.2
你好,我试了下直接播放本地文件是没问题的,我是在线播放fetch AVAudioPCMBuffer的,但是这样得到的buffer的format.sampleRate和前面的不一样,前面的是48000,后面的是32000。
我再好好看下了。
如果方便的话提供你的代码我们来一起研究下
抱歉,这么晚才回复。我下载代码并运行了,大概听了10多分钟吧,还是没能复现你所说的那个问题
不过,你在buffer的回调函数函数里面的这个语句可以删除:
buffer.frameLength = AVAudioFrameCount(2048)
因为你换了播放器之后,这里的设置肯定就没必要了。这里的buffer.frameLength都是4096,我暂时没找到这个播放器可以设置 tap 这个buffer大小的地方。
你好,我看了下findMaxAmplitude
修改之后的代码,你的目的是想避免 endIndex < startIndex
造成这个问题的原因呢,是因为参数bandWidth
与实际的bandWidth
不一致。
而bandWidth = Float(buffer.format.sampleRate) / Float(self.fftSize)
,也就是说self.fftSize
错了
总之,我们只要确保 RealtimeAnalyzer
对象中的fftSize
和 传给analyse
的buffer
的frameLength
是一致的,就不会出问题。
以上就是根本解决的办法。