让 AVAudioEngine 重复声音

2023-11-21

我一直无法让下面的代码一遍又一遍地重复audioURL 处的声音。现在,它只在视图打开时播放一次,然后停止。

import UIKit
import AVFoundation
class aboutViewController: UIViewController {

    var audioUrl = NSURL(fileURLWithPath: NSBundle.mainBundle().pathForResource("chimes", ofType: "wav")!)
    var audioEngine = AVAudioEngine()
    var myPlayer = AVAudioPlayerNode()

    override func viewDidLoad() {
        super.viewDidLoad()

        // Do any additional setup after loading the view.

        audioEngine.attachNode(myPlayer)
        var audioFile = AVAudioFile(forReading: audioUrl, error: nil)
        var audioError: NSError?
        audioEngine.connect(myPlayer, to: audioEngine.mainMixerNode, format: audioFile.processingFormat)
        myPlayer.scheduleFile(audioFile, atTime: nil, completionHandler: nil)
        audioEngine.startAndReturnError(&audioError)
        myPlayer.play()


    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }
}

Thanks!


经过几个小时的搜索,终于做到了:

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.
        
        
        let filePath: String = NSBundle.mainBundle().pathForResource("chimes", ofType: "wav")!
        println("\(filePath)")
        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.connect(audioFilePlayer, to:mainMixer, format: audioFileBuffer.format)
        audioEngine.startAndReturnError(nil)
        
        audioFilePlayer.play()
        audioFilePlayer.scheduleBuffer(audioFileBuffer, atTime: nil, options:.Loops, completionHandler: nil)
    }

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

让 AVAudioEngine 重复声音 的相关文章

  • Sprite Kit - 确定轻弹精灵的滑动手势矢量

    我有一个游戏 圆形物体从屏幕底部射出 我希望能够滑动它们以将它们朝我滑动的方向轻弹 我的问题是 我不知道如何计算滑动的矢量 方向 以便使圆形物体以适当的速度向正确的方向轻拂 我使用的静态矢量 5 5 需要通过滑动速度和滑动方向来计算 另外
  • 如何在 Swift 4 中以编程方式将 IBAction 添加到 uibutton?

    如何以编程方式将 IBAction 添加到 uibutton button addTarget self action Selector buttonAction for touchUpInside func buttonAction se
  • 如何执行 UIAlertAction 的处理程序?

    我正在尝试编写一个帮助程序类以允许我们的应用程序支持两者UIAlertAction and UIAlertView 然而 当写alertView clickedButtonAtIndex 方法为UIAlertViewDelegate 我遇到
  • CloudKit 获取当前用户的所有订阅

    我设法在 Apple CloudKit 中保存 更改和删除记录 我什至收到了与订阅相关的通知 但我不知道如何列出当前用户的所有订阅 到目前为止 这是我的代码 let operation CKFetchSubscriptionsOperati
  • 如何同时关闭并弹出到视图控制器

    我的家庭视图控制器是Tabbarcontroller 从选项卡栏我导航到 A Viewcontroller TabarViewcontroller gt A 视图控制器 从A 视图控制器 我推 B 视图控制器 从B Viewcontroll
  • Objective c:如何只删除目录下的所有文件但保留目录本身

    我发现下面的代码可以删除objective c中的文件 但我只想删除目录下的所有文件Caches并保留目录Caches itself 有人可以建议这样做的方法吗 Thanks NSFileManager filemgr filemgr NS
  • Swift:如何在 println 之后刷新标准输出?

    如何在 Swift 中刷新标准输出println命令 也就是说 Swift 相当于什么fflush stdout in C 您可以使用 fflush stdout 导入 libc 后 if os Linux import Glibc els
  • 搜索TableView无法选择行

    在搜索 tableView 时 每次我尝试选择一行时 它都会返回到未搜索的 tableView 我缺少什么 当不过滤表格时 segue 工作得很好 当搜索栏被激活时 选择行的能力就会消失 import UIKit import Founda
  • 使用 NSJSONSerialization 解析 JSON

    对此进行了太多讨论 但我不知道如何解决我的问题 这是我从 WorldWeatherOnline 获取的 JSON 数据 JSON 有效 但我不知道如何解析它 这是我的代码 后面是 JSON 请帮忙 NSError errorInfo NSD
  • 在flutter中跟踪背景位置时使用background_locator插件时出现问题

    我正在尝试使用 flutter 跟踪后台位置 为此我正在使用背景定位器 https pub dev packages background locator插入 它的实现方式是注册某些静态回调函数 我声明了一个 File 类型的类变量来在后台
  • 根据图像制作具有 UIImageView 高度的 UICollectionViewCells

    我想做一个UICollectionView单元格的宽度是屏幕的宽度 但高度取决于单元格的宽高比UIImageView inside 在我目前的实施中 所有UICollectionViewCell实例是正方形 这不是我想要的 我想以某种方式使
  • 使用prefersLargeTitles 和 UITableView 平滑滚动

    我在使用时遇到了滚动问题prefersLargeTitles并添加了UITableView 如果我设置prefersLargeTitles在导航控制器中 其根是UITableViewController一切都很好 导航大标题的滚动方式与我们
  • iOS UITableViewCell 配件在左侧?

    对于我的应用程序 我想要一些可以同时具有复选标记和详细信息披露按钮的单元格 也就是说 我希望它们看起来与 iOS 设置中的 Wi Fi 网络选择一模一样 左侧的复选标记 中间的内容 右侧的详细信息披露按钮 有没有正确的方法来做到这一点 或者
  • 使用 Parse.com 上传视频

    我是解析新手 正在尝试保存视频并将其上传到云端 这是我正在使用的代码 但是当调用 didButtonAction 时 它不断收到错误 我相信问题出在将视频保存为文件时 但我不知道如何解决这个问题 先感谢您 void imagePickerC
  • macOS 应用程序中还需要 Swift 的嵌入式 dylib吗?

    Swift 5 发行说明说 对于运行 iOS 12 2 watchOS 5 2 和 tvOS 12 2 的设备 Swift 应用程序不再在构建变体中包含 Swift 标准库和 Swift SDK 覆盖的动态链接库 但在同一上下文中没有提及
  • 自动布局:Y 位置为两个值中的最大值

    我有一个按钮 play Button 和两个 UIView myView 1 和 myView 2 它们的位置在执行过程中可能会发生变化 我希望 playButton 的顶部比 UIView 1 的底部或 UIView 2 的底部低 10
  • 编写支持 iOS 3.1.3 和 iOS 4.x 的 iOS 应用程序时的陷阱

    我想编写一个可以在 iOS 3 1 3 到 iOS 4 1 上运行的应用程序 我知道如何设置部署目标和基础 SDK 阅读 Apple 文档后 它很大程度上依赖于检查类是否可用和 或实例是否响应特定选择器 现在我的问题是 如果 Apple 从
  • 删除后台 moc 中的对象然后在主 moc 中刷新它会导致 NSFetchedResultsController 更新崩溃

    我遇到了一个NSObjectInaccessibleException我无法理解 Terminating app due to uncaught exception NSObjectInaccessibleException reason
  • 在 iOS 中管理和解除多个视图控制器

    我是一名 iPhone 新手程序员 在开发我的第一个游戏 应用程序时 我为自己提出了一个问题 创造了一个问题 我对此进行了研究 并认为我已经看到了答案 但我不明白如何使它们适用于我的应用程序 我有一个游戏 有几个视图控制器 欢迎 玩 高分
  • 在 Swift 中将 Int 转换为 UInt32

    我正在制作一个 Tcp 客户端 因此使用CFStreamCreatePairWithSocketToHost它期望第二个参数为 UInt32 这是我正在尝试做的事情的示例 func initNetwork IP String Port In

随机推荐

  • 使用 Django 选择上传文件的文件名

    我正在上传图像 由 FileField 表示 并且需要在上传这些文件时重命名它们 我希望它们的格式如下 d d s s width height md5hash original extension 我已阅读文档 但我不知道是否需要编写自己
  • 限制可写入路径的记录数量(参考安全规则中的其他路径)

    假设我的 Firebase 系列如下所示 max 5 things 我将如何使用的价值max在我的安全规则中限制数量things rules things validate newData val length lt max 使用现有属性是
  • Java 中的二元运算符什么时候执行?

    我正在尝试理解java字节码 我从简单的例子开始 public class Test public static void main String args System out println 2 1 我编译了这个类 javac Test
  • Laravel 4 Auth::尝试使用电子邮件或用户名和密码

    在 laravel 中进行登录尝试时 我通常使用如下内容 if Auth attempt array email gt usernameinput password gt password true The user is being re
  • SQL Server 2005 获取任何一年中任何月份的第一个和最后一个日期

    我有一个存储过程 必须接受 int 1 12 形式的月份和 int 形式的年份 给定这两个值 我必须确定该月的日期范围 因此 我需要一个日期时间变量来表示该月的第一天 另一个日期时间变量来表示该月的最后一天 有没有一种相当简单的方法来获取这
  • 为什么Java的SimpleDateFormat解析这个

    您好 我使用自定义格式字符串设置了一个简单的日期格式 MMddyy 我给它以下值来解析 4 1 01 我认为它不应该解析这个 因为有空格 但简单日期格式正在返回日期 公元 0001 年 4 月 4 日 有什么想法为什么吗 这是预期的行为 您
  • 如何在ListView自定义适配器中使用RadioGroup?

    我想在我的列表中显示一个选择选项 我在用RadioButton in my listView排 我知道RadioGroup用于单选 但问题是我已经添加了RadioButton in my ListRowView 现在我想将所有列表项添加到一
  • 如何从模板中的指针获取类型?

    我知道如何写一些东西 但我确信有一种标准的方式来传递类似的东西func
  • 如何获取我的 Web 应用程序的基本 URL?

    是否可以通过使用获取 IIS 7 中托管的网站的基本 URLMicrosoft Web Administration ServerManager 在最简单的情况下 这将是 http localhost 但我需要以编程方式获取它 如果我不能使
  • 将 R 数据框中特定列的文本大写

    我有一个数据 看起来像这样 GO 2000974 7 8 negative regulation of pro B cell differentiation Notch1 ISS GO 2000974 7 8 negative regula
  • Android:ActivityCompat.requestPermissions 需要活动而不是上下文:/

    我调用 ActivityCompat requestPermissions 是为了获得 android M 下的权限 但是 这需要参数中的活动 这很好 只是我想从单例中调用它 并且单例可以由应用程序中的任何活动使用 ActivityComp
  • 如何确定复选框是否被选中?

    由于某种原因 我的表单不想获取复选框的值 我不确定这是否是我的编码 但是当我尝试时alert 我得到的值undefined因此 我有什么错吗
  • dropDups true 不工作 mongodb

    我在用mongoDB shell with version 3 0 2我试图确保唯一性约束username集合中的字段users 这就是我给出的 db users ensureIndex username 1 unique true 它给了
  • 从多个线程访问 SQLite DB

    考虑以下几点 我有Service 写入 DB 中AsyncTask 我的 Activity 从数据库读取数据 为简单起见 请考虑 UI 线程 我使用访问数据库SQLiteOpenHelper 我在中创建单个实例应用程序 onCreate 然
  • 无法加载库 cudnn_cnn_infer64_8.dll。错误代码 126

    Could not load library cudnn cnn infer64 8 dll Error code 126 Please make sure cudnn cnn infer64 8 dll is in your librar
  • 将 for 循环的结果保存为 r 中的向量

    我有以下 for 循环 它打印从 1 到 10 的数字 for i in 1 10 print i 如何将结果保存为向量 而不是仅仅将其打印到控制台 如果我尝试 my vector lt for i in 1 10 print i 然后打电
  • MySQL 中 ORDER BY 相等的值

    全部 我现在有以下 SQL 查询 SELECT FROM wpdb gt posts JOIN wpdb gt term relationships ON wpdb gt term relationships object id wpdb
  • 如何分析 BSOD 及其向我提供的错误信息?

    幸运的是 我没有编写过很多导致 BSOD 的应用程序 但我只是想知道这个屏幕上的信息是否有用 它是否包含任何有用的信息可以帮助我找到代码中的错误 如果是这样 我到底需要什么 然后 系统重新启动 并且可能已将一些错误日志或其他信息写入系统的某
  • UIButton 动画后没有响应

    我更愿意先从下面的链接下载项目 然后继续提问 仅 36kb 下载链接 一开始我所拥有的如下所示 当我单击 我的办公室 按钮时 我正在调用操作actionSeenButton这将打印NSLog actionSeenButton IBActio
  • 让 AVAudioEngine 重复声音

    我一直无法让下面的代码一遍又一遍地重复audioURL 处的声音 现在 它只在视图打开时播放一次 然后停止 import UIKit import AVFoundation class aboutViewController UIViewC