问题描述
我启动了一个新的iOS应用程序,其中托管了一个通过AudioUnit Extension创建的AUv3插件。我基本上是使用Apple提供给我的模板。我的主要应用程序是托管AUv3。以下代码可在我的设备(iPad Pro 11-iOS 14)上运行,但在模拟器(iPhone 11-iOS 14)中则收到以下错误消息:
2020-10-15 21:07:36.786306 + 0200 MyApp [2132:84039] [插件] AddInstanceForFactory:没有为id
F8BB1C28-BAE8-11D6-9C31-00039315CD46 2020-10-15 21:07:37.124600 + 0200 MyApp [2132:83972]例外: os_eventlink_activate失败(45)
2020-10-15 21:07:37.125009 + 0200 MyApp [2132:83972] [i-aa] AUAudioUnit_xpc.mm:665:-[AUAudioUnit_xpc allocateRenderResourcesAndReturnError:]:渲染管道用户创建 失败(Error Domain = NSOsstatusErrorDomain Code = -1“(null)”)
2020-10-15 21:07:37.125389 + 0200 MyApp [2132:83972] [avae]
AVAEInternal.h:109 [AVAudioEngineGraph.mm:1389:Initialize:(err = AUGraPHParser ::: InitializeActiveNodesInOutputChain(ThisGraph, kOutputChainoptimizedTraversal,* GetoutputNode(), isOutputChainActive)):错误-1错误:无法进行该操作 完成。 (com.apple.coreaudio.avfaudio错误-1。)
ViewController.swift
import UIKit
import AVFoundation
import CoreAudioKit
class ViewController: UIViewController {
@IBOutlet weak var auView: UIView!
var avUnit:AVAudioUnit?
var engine:AVAudioEngine!
override func viewDidLoad() {
super.viewDidLoad()
self.engine = AVAudioEngine()
do {
try AVAudioSession.sharedInstance().setMode(.default)
try AVAudioSession.sharedInstance().setPreferredSampleRate(44100)
try AVAudioSession.sharedInstance().setCategory(.playback,options: [.allowBluetooth,.allowBluetoothA2DP,.mixWithOthers])
try AVAudioSession.sharedInstance().setActive(true)
}catch let error{
print("error \(error.localizedDescription)")
}
// Retrieve audio unit components by description.
let description = AudioComponentDescription(componentType: kAudioUnitType_MusicDevice,componentSubType: 0x6775616e,componentManufacturer: 0x5775616e,componentFlags: 0,componentFlagsMask: 0)
AVAudioUnit.instantiate(with: description,options: []) { avAudioUnit,error in
guard error == nil else {
dispatchQueue.main.async { /* Show error message to user. */ }
return
}
guard let aUnit = avAudioUnit else { return }
self.avUnit = aUnit
//let format = AVAudioFormat(commonFormat: .pcmFormatFloat32,sampleRate: 44100,channels: 2,interleaved: false)!
let formatOutput = self.engine.mainmixerNode.outputFormat(forBus: 0)
let formatAU = aUnit.outputFormat(forBus: 0)
self.engine.attach(aUnit)
self.engine.connect(aUnit,to: self.engine.mainmixerNode,format: formatAU)
self.engine.connect(self.engine.mainmixerNode,to: self.engine.outputNode,format: formatOutput)
do {
try self.engine.start()
} catch let error {
print(error.localizedDescription)
}
self.addpluginView()
}
}
private func addpluginView() {
self.avUnit?.auAudioUnit.requestViewController(completionHandler: { plugInViewController in
if plugInViewController != nil{
if let pluginView = plugInViewController!.view{
pluginView.frame = self.auView.bounds
self.auView.addSubview(pluginView)
}
}
})
}
}
AVAudioEngine ..内部是否有问题? 任何帮助表示高度赞赏。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)