gpt4 book ai didi

Ios 录制 Live mic 数据无法录制和发送?

转载 作者:行者123 更新时间:2023-11-28 14:35:40 25 4
gpt4 key购买 nike

import UIKit
import AVFoundation

class RecViewController: UIViewController,AVCaptureAudioDataOutputSampleBufferDelegate {

@IBOutlet weak var recBtn: UIButton!

let session = AVCaptureSession()
var result: NSData?

override func viewDidLoad() {
super.viewDidLoad()

self.recBtn.setTitle("RECORDING", for: .normal)
}

@IBAction func recBtnAction(_ sender: Any) {

session.sessionPreset = .medium

let mic = AVCaptureDevice.default(for: .audio)
var mic_input: AVCaptureDeviceInput!

let audio_output = AVCaptureAudioDataOutput()
audio_output.setSampleBufferDelegate(self, queue: DispatchQueue.main)

do {
mic_input = try AVCaptureDeviceInput(device: mic!)
} catch {
return
}

if session.inputs.isEmpty {
self.session.addInput(mic_input)
session.addOutput(audio_output)
}

session.startRunning()

}
func captureOutput(_ output: AVCaptureOutput, didOutput sampleBuffer: CMSampleBuffer, from connection: AVCaptureConnection) {

let block = CMSampleBufferGetDataBuffer(sampleBuffer)
var length = 0
var data: UnsafeMutablePointer<Int8>? = nil

var status = CMBlockBufferGetDataPointer(block!, 0, nil, &length, &data) // TODO: check for errors

result = NSData(bytesNoCopy: data!, length: length, freeWhenDone: false)
}

@IBAction func playBtnAction(_ sender: Any) {
// Storing the ns data and trying to play with following code but it dosent play cant hear a thing
do {
let audioPlayer = try AVAudioPlayer(data: result as! Data )
audioPlayer.prepareToPlay()
audioPlayer.play()
} catch {
print("Error")
}
}

}

我正在使用这段代码记录来自麦克风的实时数据,但是当我按下 rec 按钮时没有任何反应,它既没有记录也没有去委托(delegate)和打印那么如何解决这个问题? (已解决)

我已经更新了代码,当我尝试通过 av 音频播放器播放该 ns 数据时,它没有播放任何内容如何解决这个问题?

最佳答案

看起来您的 audio_output 实际上并没有被 recBtnAction 方法范围之外的任何内容保留。很可能您的 session 在您离开该方法时已被丢弃,因此不会为您捕获任何内容。


编辑

玩过您提供的示例代码后,您的实际问题似乎是您使用的委托(delegate)方法的签名错误。

应该是:

func captureOutput(_ output: AVCaptureOutput!, didOutputSampleBuffer sampleBuffer: CMSampleBuffer!, from connection: AVCaptureConnection!) {
}

关于Ios 录制 Live mic 数据无法录制和发送?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50917296/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com