- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的 Swift 项目中有这个 EZAudio 方法,用于从麦克风捕获音频:
func microphone(microphone: EZMicrophone!, hasAudioReceived bufferList: UnsafeMutablePointer<UnsafeMutablePointer<Float>>, withBufferSize bufferSize: UInt32, withNumberOfChannels numberOfChannels: UInt32) {
}
但我真正需要的是将“bufferList”参数作为 AudioBufferList 类型传入,以便通过套接字发送这些音频数据包,就像我在 Objective C 中所做的那样:
//Objective C pseudocode:
for(int i = 0; i < bufferList.mNumberBuffers; ++i){
AudioBuffer buffer = bufferList.mBuffers[i];
audio = ["audio": NSData(bytes: buffer.mData, length: Int(buffer.mDataByteSize))];
socket.emit("message", audio);
}
如何将 UnsafeMutablePointer> 变量转换为 AudioBufferList?
最佳答案
我能够将麦克风中的音频流式传输到套接字中,如下所示:
func microphone(microphone: EZMicrophone!, hasBufferList bufferList: UnsafeMutablePointer<AudioBufferList>, withBufferSize bufferSize: UInt32, withNumberOfChannels numberOfChannels: UInt32) {
let blist:AudioBufferList=bufferList[0]
let buffer:AudioBuffer = blist.mBuffers
let audio = ["audio": NSData(bytes: buffer.mData, length: Int(buffer.mDataByteSize))];
socket.emit("message", audio);//this socket comes from Foundation framework
}
这个通用的 AudioStreamDescriptor 设置对我有用,您可能需要根据自己的需要对其进行调整或省略某些部分,例如波形动画:
func initializeStreaming() {
var streamDescription:AudioStreamBasicDescription=AudioStreamBasicDescription()
streamDescription.mSampleRate = 16000.0
streamDescription.mFormatID = kAudioFormatLinearPCM
streamDescription.mFramesPerPacket = 1
streamDescription.mChannelsPerFrame = 1
streamDescription.mBytesPerFrame = streamDescription.mChannelsPerFrame * 2
streamDescription.mBytesPerPacket = streamDescription.mFramesPerPacket * streamDescription.mBytesPerFram
streamDescription.mBitsPerChannel = 16
streamDescription.mFormatFlags = kAudioFormatFlagIsSignedInteger
microphone = EZMicrophone(microphoneDelegate: self, withAudioStreamBasicDescription: sstreamDescription, startsImmediately: false)
waveview?.plotType=EZPlotType.Buffer
waveview?.shouldFill = false
waveview?.shouldMirror = false
}
让这个东西运行起来很复杂,祝你好运!
关于objective-c - 如何将 UnsafeMutablePointer<UnsafeMutablePointer<Float>> 变量转换为 AudioBufferList?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37863088/
我正在使用 Swift 的 C API,对于我需要调用的方法之一,我需要给出一个 UnsafeMutablePointer>> 更多信息: 快速界面: public func presage_pred
函数: public func OSAtomicCompareAndSwapPtr(_ __oldValue: UnsafeMutableRawPointer!, _ __newValue: Unsa
我正在尝试使用 NSView 的 getRectsBeingDrawn,但我不太确定如何转换它需要的变量。 它的定义是: func getRectsBeingDrawn(rects: UnsafeMu
更新到 Swift 3 后,我的代码出现了一些问题。我在转换之前有这段代码: extension NSData { func castToCPointer() -> T { let mem
我真的被一个愚蠢但看似简单的问题弄疯了......我必须将 Data 转换为 AVAudioPCMBuffer。 寻找this question这似乎很容易,但随着 Swift 3 的出现,一切都发生
我需要使用一个使用 UnsafeMutablePointer?>! 的函数作为参数。它是用 Objective-C++ 框架编写的,我通过桥接 header 访问它: - (void) applyFi
我的 Swift 项目中有这个 EZAudio 方法,用于从麦克风捕获音频: func microphone(microphone: EZMicrophone!, hasAudioReceived b
我刚开始弄乱图像处理,我遇到了几个非常奇怪的问题,或者至少我认为是这样。我假设我犯了一些非常愚蠢的错误。 我本来打算就此发布另一个问题,但是使用下面的代码有时我也会得到随机噪声,而不是用户抽取数字的像
在main.swift文件,我们调用了我们的收据检查系统(由 Receigen 生成)。在 Swift 2 中,main.swift阅读: startup(Process.argc, UnsafeMu
我在 Swift 中创建了一个名为 RGB 的结构,非常简单: struct PixelRGB { var r: CUnsignedChar = 0 var g: CUnsignedC
我正在使用 SceneKit 的 SCNParticleSystem 构建一个测试应用程序。它有一个回调,可让您修改每个帧上的粒子属性。这个回调的签名是 typealias SCNParticleMo
Accelerate 框架的 Swift 签名 vDSP_biquadm()函数包括 UnsafeMutablePointer> 的参数类型和 UnsafeMutablePointer> . 如何在
请帮助语法: __weak typeof (self) weakSelf = self; [self.audioFile getWaveformDataWithCompletionBlock:^(fl
这段代码在 Swift2.3 中运行良好,现在我将其转换为 Swift3。所以我收到这个错误。有人知道如何解决这个问题吗? var cmdLnConf: OpaquePointer? filepriv
我构建了一个小结构,其中包含伪 C 字符串 UnsafeMutablePointer。现在我想添加一种方法来获取字符串的长度,但有些行为非常奇怪: struct Char { let valu
1. let context = CGContext(...) 2. context.draw(...) 3. let buffer = UnsafeMutablePointer(context.da
在 C 中,我有以下代码来分配一个具有适当大小的 AudioBufferList,然后用相关数据填充它。 AudioObjectPropertyScope scope = mIsInput ? kAu
我正在尝试将我的 Swift 2 代码转换为最新的语法 (Swift 3)。我收到以下错误: Cannot invoke initializer for type 'UnsafeMutablePoin
var a = [1,2,3] let ptr1 = UnsafeMutablePointer(&a[0]) //works fine let index = 0 let ptr2 = UnsafeM
在我创建的结构中(在Xcode 10.1,Swift 4.2上)观察到的属性上使用UnsafeMutablePointer时,出现了一些意外的行为。请参阅以下游乐场代码: struct NormalT
我是一名优秀的程序员,十分优秀!