首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何用arg写块。Swift闭包中的"UnsafeMutablePointer<UnsafeMutablePointer<Float>>“

如何用arg写块。Swift闭包中的"UnsafeMutablePointer<UnsafeMutablePointer<Float>>“
EN

Stack Overflow用户
提问于 2015-07-09 07:18:24
回答 2查看 406关注 0票数 1

请在语法方面提供帮助:

代码语言:javascript
复制
__weak typeof (self) weakSelf = self;
[self.audioFile getWaveformDataWithCompletionBlock:^(float **waveformData,
                                                     int length)
{
    [weakSelf.audioPlot updateBuffer:waveformData[0]
                      withBufferSize:length];
}];

波形数据本身将是浮点数组的数组,每个通道一个浮点数组,长度表示每个浮点数组的总长度。@param waveformData浮点数组的数组,每个浮点数组表示文件中的一个音频数据通道@param length一个整数表示每个浮点音频数据通道的长度

在swift中,我有:

代码语言:javascript
复制
cell.audioFile.getWaveformDataWithCompletionBlock { (UnsafeMutablePointer<UnsafeMutablePointer<Float>>, Int32) -> Void 

}

我坚持使用UnsafeMutablePointer>

我需要使用这个arg。在:

Cell.audioWaveView.updateBuffer(缓冲区: UnsafeMutablePointer,withBufferSize: Int32)

EN

回答 2

Stack Overflow用户

发布于 2015-08-14 21:37:26

我知道这可能是一个古老的问题,但我也在为同样的问题而苦苦挣扎,最终我解决了:

您需要将参数作为WaveformDataCompletionBlock闭包传递给块,并且您的参数应该是UnsafeMutablePointer和UInt32。所以代码应该是这样的:

代码语言:javascript
复制
self.audioFile = EZAudioFile(URL: self.soundFileURL)
var waveClosure: WaveformDataCompletionBlock = {
  (waveForData: UnsafeMutablePointer<Float>, length: UInt32) in
  //Do something
}
self.audioFile.getWaveformDataWithCompletionBlock(waveClosure)

我希望这能对某些人有用:)

票数 1
EN

Stack Overflow用户

发布于 2015-09-09 08:09:05

与@FelipeDev发布的类似,这个问题很老了,但今天仍然对我有帮助(谢谢Felipe!)。然而,现在EZAudio和Swift的新版本对此有了略微更新的答案。我将此代码与以下代码配合使用:

代码语言:javascript
复制
var waveClosure: EZAudioWaveformDataCompletionBlock = {
        (waveformData: UnsafeMutablePointer<UnsafeMutablePointer<Float>>, length: Int32) in
        //Do something like update the audio plot buffer if you are plotting the waveform
        self.audioPlot.updateBuffer(waveformData[0], withBufferSize: UInt32(length))
    }
self.audioFile.getWaveformDataWithCompletionBlock(waveClosure)

希望这能有所帮助!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31305488

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档