Swift AVAudioEngine 崩溃:播放器在断开连接状态下启动

2023-12-12

因此,我下面的代码应该以更高的音调一遍又一遍地重播 chimes.wav 文件,但由于底部的错误而崩溃。谁能找到导致此错误的原因吗?

import UIKit
import AVFoundation
class aboutViewController: UIViewController {


    var audioEngine: AVAudioEngine = AVAudioEngine()
    var audioFilePlayer: AVAudioPlayerNode = AVAudioPlayerNode()

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.



        var timePitch = AVAudioUnitTimePitch()
        timePitch.pitch = 2000
        let filePath: String = NSBundle.mainBundle().pathForResource("chimes", ofType: "wav")!
        let fileURL: NSURL = NSURL(fileURLWithPath: filePath)!
        let audioFile = AVAudioFile(forReading: fileURL, error: nil)
        let audioFormat = audioFile.processingFormat
        let audioFrameCount = UInt32(audioFile.length)
        let audioFileBuffer = AVAudioPCMBuffer(PCMFormat: audioFormat, frameCapacity: audioFrameCount)
        audioFile.readIntoBuffer(audioFileBuffer, error: nil)

        var mainMixer = audioEngine.mainMixerNode
        audioEngine.attachNode(audioFilePlayer)
        audioEngine.attachNode(timePitch)
        audioEngine.connect(audioFilePlayer, to:mainMixer, format: audioFileBuffer.format)
        audioEngine.connect(timePitch, to: audioEngine.outputNode, format: audioFile.processingFormat)


        audioEngine.startAndReturnError(nil)

        audioFilePlayer.play()

        audioFilePlayer.scheduleFile(audioFile, atTime: nil, completionHandler: nil)
        audioFilePlayer.scheduleBuffer(audioFileBuffer, atTime: nil, options:.Loops, completionHandler: nil)

    }

2014-11-10 18:34:37.746 WindChimes[2350:108235] **** 由于未捕获的异常“com.apple.coreaudio.avfaudio”而终止应用程序,原因:“播放器在处于断开连接状态时启动” **** 首先抛出调用堆栈: (0x185f01e48 0x1965f40e4 0x185f01d08 0x1848726c0 0x18489a33c 0x18489975c 0x10009e638 0x10009e858 0x18a6b0e84 0x18a6b0b94 0 x18a853ad4 0x18a765310 0x18a7650dc 0x18a76505c 0x18a6ada2c 0x18a005994 0x18a000564 0x18a000408 0x189fffc08 0x189fff98c 0x189ff93bc 0x185eba14c 0x185eb70d8 0x185eb74b8 0x185de51f4 0x18ef7b5a4 0x18a716784 0x1000a54f8 0x1000a5538 0x196c62a08) libc++abi.dylib:以 NSException 类型的未捕获异常终止 (LLDB)


语句:“playerstartedwhenindisconnectedstate”表明连接链有问题。这意味着节点没有附加到引擎,或者节点没有正确链接在一起。因为同时附加了 audioFilePlayer 和 timePitch 节点,我的印象是问题出在这两行上:

audioEngine.connect(audioFilePlayer, to:mainMixer, format: audioFileBuffer.format)
audioEngine.connect(timePitch, to: audioEngine.outputNode, format: audioFile.processingFormat)

连接应将所有组件连接在一起:

audioFilePlayer -> timePitch -> audioEngine.mainMixerNode(或outputNode)

所以连接应该是这样的:

audioEngine.connect(audioFilePlayer, to:timePitch, format: audioFile.processingFormat)
audioEngine.connect(timePitch, to: audioEngine.outputNode, format: audioFile.processingFormat)

我希望这有帮助。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Swift AVAudioEngine 崩溃:播放器在断开连接状态下启动 的相关文章

  • 使用 NSString 进行 UTF8 解码

    我是 Objective C 新手 尝试使用以下示例将格式错误的 UTF8 编码 NSString 转换为格式良好的字符串苹果文档 http developer apple com library mac documentation Coc
  • NSString stringWithContentsOfFile 失败,错误代码似乎错误

    我正在尝试将文件加载到字符串中 这是我正在使用的代码 NSError error nil NSString fullPath NSBundle mainBundle pathForResource filename ofType html
  • 无法连接到 iTunes Store(获取应用内购买列表)

    我正在尝试从我的应用程序的应用程序内购买项目商店中获取列表 这是我所做的 安装了新的配置文件并启用了应用内购买 替换配置文件很棘手 但我认为我的设置是正确的 验证税务和银行信息是否正常 该应用程序已在商店出售 创建测试用户 在测试设备上以测
  • iOS - 如何在 swift 中使用 `NSMutableString`

    我已经看过这段 Objective C 代码 但我很难在 swift 中做同样的事情 NSMutableAttributedString res self richTextEditor attributedText mutableCopy
  • 为什么performSegueWithIdentifier在viewDidLoad中不起作用?

    我试图在视图控制器上调用 viewDidLoad 后立即触发故事板转场 Segue 附加了一个标识符 当从链接到按钮或其他控件的方法内部调用时 它可以正常工作 但它在 viewDidLoad 内部不起作用 它只是默默地失败了 viewDid
  • iOS、通用链接、Swift。 continueUserActivity 未调用

    我正在为我们的 iOS 应用程序实现通用链接 这是我的一小部分 AppDelegate private func application application UIApplication openURL url URL sourceApp
  • Swift SpriteKit edgeLoopF​​romRect 问题

    下面的代码可以识别底部和顶部边缘场景和球按预期弹开 但是 那左边缘和右边缘现场的情况一直被破坏 如果施加足够的力 球会离开屏幕 然后最终返回 就好像场景的边缘超出了 iPhone 模拟器窗口的边缘 import SpriteKit clas
  • 错误域=kAFAssistantErrorDomain 代码=209“(空)”

    我面临着一个问题SFSpeechRecognizer 启动应用程序几秒钟后 我开始收到错误消息 错误域 kAFAssistantErrorDomain 代码 209 空 和 错误 域 kAFAssistantErrorDomain 代码 2
  • 从一个模态视图无缝翻转到另一个模态视图,而不显示纯色背景

    我的 iPad 应用程序的 UI 如下 当我点击Settings按钮 我希望对话框水平翻转以显示设置对话框 我这个工作正常 但是 当对话翻转时会显示背景颜色 如你看到的 有什么办法可以让对话框翻转时不显示该颜色块吗 我希望它看起来更加无缝
  • iOS 中 NSDecimalNumber 的小数分隔符错误

    我尝试通过以下方式输出具有正确的小数分隔符的十进制数的描述 NSString strValue 9 94300 NSDecimalNumber decimalNumber NSDecimalNumber decimalNumberWithS
  • (Kiss)XML xpath 和默认命名空间

    我正在开发一个 iPhone 项目 需要解析一些 xml xml 可能包含也可能不包含默认名称空间 我需要知道如何解析 xml 以防它使用默认命名空间 由于我需要读取和写入 xml 因此我倾向于使用 KissXML 但我愿意接受建议 这是我
  • 如何让UITextView背景线与文字对齐?

    我正在尝试绘制 UITextView 的背景线 这是我用来画这些线的代码 CGContextBeginPath context CGContextSetStrokeColorWithColor context self horizontal
  • 在 iPhone 3GS 与 iPhone 4 上为 Mobile Safari 嵌入 HTML5 视频

    我在服务器上的 mp4 文件中有 H 264 AAC 编码的视频 mime 类型的视频 mp4 添加到 Web 服务器 IIS 7 并且我有一个带有视频标签的页面
  • 会话重新启动后 AVcapture 会话启动缓慢

    我有一个主视图控制器 它连接到具有 avcapturesession 的第二个视图控制器 我第一次从主视图控制器转向捕获会话控制器 大约需要 50 毫秒 使用 仪器 检查 然后我从捕获会话返回到主视图控制器 然后从主控制器返回到 avcap
  • 调整 UIImage 的大小而不将其完全加载到内存中?

    我正在开发一个应用程序 用户可以在其中尝试加载非常非常大的图像 这些图像首先在表格视图中显示为缩略图 我的原始代码会在大图像上崩溃 因此我重写它以首先将图像直接下载到磁盘 是否有一种已知的方法可以调整磁盘上图像的大小 而无需通过以下方式将其
  • 在 UIWebView 中播放 Facebook 视频

    有谁知道如何在 Facebook 上播放视频UIWebView 我的应用程序将视频上 传到 Facebook 并检索视频的网址 我想将此网址嵌入到UIWebView播放 我已经为 youtube 解决了这个问题 但没有为 Facebook
  • 在实例化对象之前是否可以检查故事板中是否存在标识符?

    在我的代码中我有这一行 但我想知道是否有办法检查是否 一些控制器 在我将它与 一起使用之前就存在实例化ViewControllerWithIdentifier 方法 如果标识符不存在 则应用程序崩溃 如果没有好的方法 这并不是一个大问题 我
  • 使用 MapKit 的地形和卫星视图

    我是 Mapkit View 的新手 当我给出没有目的地的纬度和经度时 我想显示 MapKit中是否可以通过地形 卫星视图来显示地图 有教程链接吗 我看过一些访问 Google 地图 API html 文件 的示例 有必要吗 或者您可以通过
  • 叠加 SKScene 未显示

    我正在尝试将 SKScene 覆盖在 SCNScene 上 当我在模拟器和 iPhone6 上运行我的应用程序时 overlayScene SKScene 按预期显示 但是当我尝试在 iPhone5 上运行它 尝试了 2 个不同的设备 时
  • 隐藏选项卡栏项目并对齐其他选项卡项目

    在我的应用程序中 我有 4 个选项卡栏项目 我正在 XIB 文件中添加这 4 个选项卡栏项目 最初我必须显示 3 个选项卡栏项目 同步后我必须在我的应用程序中显示第 4 个选项卡栏项目 因此 为此 我使用以下代码隐藏第四个选项卡栏项目 se

随机推荐

  • Tomcat 7 中的 URLRewrite

    我计划开发一个内联网应用程序 Java客户端 JSP SQLite 这样做的目标是 当用户单击链接时 如果用户有权访问 在业务逻辑中处理的团队 则应提供文件以供下载 数据库中有一个表保存信息 下面是示例行 ID file team md5
  • 设置大货币数字的格式

    使用 FormatStyle API 是否可以使用 20M 或 10k 等尾随 SI 单位来格式化大数字 特别是 我正在寻找一种使用适当的本地化和货币符号来格式化大货币值 例如 20M 的方法 我目前有一个货币格式化程序 extension
  • 按 Import-CSV 中的最大数值对对象进行排序

    我想要文件顶部的最大值 mailboxSize 我有一个简历作为输入 当我执行以下排序命令时 Import Csv import csv Sort Object MailboxSize DisplayName Descending Expo
  • C++ 函数原型?

    这是新手问题 5 但我没有老师 所以 无论如何 我们开始 我想知道是否有必要将函数原型放在文件顶部 而不是将main函数到文件末尾并在文件顶部创建所有函数 据我所知 VC 和 G 都没有抱怨 是否存在不允许我这样做的标准 当您更改函数参数和
  • 奇怪的 Ajax ComboBox 下拉列表

    我在某个面板中有组合框
  • 删除 display:flex 会在链接周围添加空格。为什么?

    我创建了一个 html 错误页面 它有 2 行显示错误 第二行有主页链接 为了使两条线保持在中心 我创建了一个顶层css grid并使网格的每一行成为flex 我注意到如果我使用display flex对于第二行 周围没有任何空间here链
  • jQuery .toggleClass 不切换 CSS 类

    The highlight开启时课程不工作 button 我究竟做错了什么 HTML
  • 图中2个节点之间的所有路径

    我必须制作一个无信息搜索 广度优先搜索 程序 该程序需要两个节点并返回它们之间的所有路径 public void BFS Nod start Nod end Queue
  • 全屏背景图像被拉伸

    我为我的一个客户制作了一张全屏背景图像 但问题是 当我使用以下 css 代码使图像适合所有屏幕时 bg image img position fixed left 0 top 0 width 100 max height 100 bg im
  • SQL:存储过程中的子句:如何传递值

    我想编写一个 SQL Server 2005 存储过程 它将从用户表中选择并返回一些用户 ID 的用户记录 这些用户 ID 作为参数传递给存储过程 这个怎么做 我可以将用户 ID 作为以逗号分隔的字符串传递 这样我就可以使用 select
  • scanf 和 strcmp 与 c 字符串

    我找到了一个不错的example如何使用 strcmp 但它只能与 fgets 一起使用 并且我需要使其与 scanf 一起使用 所以 这是代码 int main void char fruit apple n char ans 80 do
  • Linq to XML Noob 问题 - 属性上的不同和排序

    我刚刚开始使用 Linq to XML 我有一个简单的文档 其中包含如下记录
  • java.io.File 的 TreePath

    有没有什么简单的方法可以获得File or java nio file Path 就此而言 从TreePath 例如 您有一个JTree像这样 Green Blue Red Yellow Purple jpg Brown jpg Black
  • 我正在阅读《C 编程语言》(第 2 版),但我不明白一个概念:

    我正在阅读 C 编程语言 第 2 版 但我不明白一个概念 有这段代码可以将输入复制到输出 include
  • NodeJS 无法从 req.params.token 获取令牌值

    app post reset token function req res async waterfall function done User findOne local resetPasswordToken req params tok
  • R 正则表达式中的转义句点

    除非我遗漏了什么 否则这个正则表达式看起来非常简单 grepl Processor 0 9 Processor Time names web02 然而 它不喜欢逃避时期 我的目的是成为一个字面上的时期 Error is an unrecog
  • Python:创建n个列表的最快方法

    所以我想知道如何最好地创建空白列表列表 由于 Python 处理内存中列表的方式 这不起作用 n 这确实创建了 但每个元素都是相同的列表 d n d 0 append 1 1 1 像列表理解这样的东西是有效的 d for x in xran
  • 使用 npm 安装包时无法读取未定义的属性“resolve”

    我无法使用 npm 在 Windows 10 计算机上执行任何操作 我总是得到 npm ERR 无法读取未定义的属性 解析 我正在使用 VSCode npm install npm g 给我与 npm i 相同的消息 我已经卸载了 Node
  • 使用投影查询时的 NDB 缓存

    尚未找到之前提出的这个具体问题 使用投影查询与完整实体查询时 App Engine 的 NDB 如何处理缓存 例如 如果我首先执行预计查询 MyModel query get projected name 然后接下来进行常规查询 MyMod
  • Swift AVAudioEngine 崩溃:播放器在断开连接状态下启动

    因此 我下面的代码应该以更高的音调一遍又一遍地重播 chimes wav 文件 但由于底部的错误而崩溃 谁能找到导致此错误的原因吗 import UIKit import AVFoundation class aboutViewContro