使用 SimpleAudioEngine 按顺序播放声音

2024-04-10

我正在使用 cocos2d 2 构建一个 iOS 应用程序,并使用 SimpleAudioEngine 来播放一些效果。

有没有办法在前一个声音完成后按顺序播放多个声音?

例如在我的代码中:

[[SimpleAudioEngine sharedEngine] playEffect:@"yay.wav"];
[[SimpleAudioEngine sharedEngine] playEffect:@"youDidIt.wav"];

当这段代码运行时,yay.wav and youDidIt.wav完全相同的时间,互相超越。

I want yay.wav玩并完成后,youDidIt.wav玩。

如果不使用 SimpleAudioEngine,是否有使用 AudioToolbox 或其他方法的方法?

谢谢你!

== UPDATE ==

我想我将使用 AVFoundation 采用这种方法:

AVPlayerItem *sound1 = [[AVPlayerItem alloc] initWithURL:[NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"yay" ofType:@"wav"]]];
AVPlayerItem *sound2 = [[AVPlayerItem alloc] initWithURL:[NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"YouDidIt" ofType:@"wav"]]];    
AVQueuePlayer *player = [[AVQueuePlayer alloc] initWithItems: [NSArray arrayWithObjects:sound1, sound2,  nil]];
[player play];

最简单的方法是使用以下命令获取曲目持续时间-[CDSoundSource durationInSeconds]然后安排在适当的延迟后播放第二个效果:

[[SimpleAudioEngine sharedEngine] performSelector:@selector(playEffect:) withObject:@"youDidIt.wav" afterDelay:duration];

获取音频持续时间的一种更简单的方法是修补 SimpleAudioManager 并添加一个查询其音频的方法CDSoundEngine(静态全局)音频持续时间:

- (float)soundDuration {
    return [_engine bufferDurationInSeconds:_soundId];
}

第二种方法是轮询音频引擎的状态并等待它停止播放。

    alGetSourcei(sourceId, AL_SOURCE_STATE, &state);
    if (state == AL_PLAYING) {
      ...

The sourceId is the ALuint由返回playEffect.

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

使用 SimpleAudioEngine 按顺序播放声音 的相关文章

  • Monotouch全局异常处理

    我在野外发现了一只令人讨厌的虫子 但我无法确定它的具体情况 有没有办法拥有全局 Try Catch 块 或者有办法处理 Monotouch 中未处理的任何异常 我可以包起来吗UIApplication Main args 在 try cat
  • ipa 应用程序无法添加到我们的 itunes 库,它不是有效的应用程序

    我使用 xcode 6 和 swift 语言制作了一个未签名的 IPA 应用程序 我已压缩 app 文件并将其扩展名更改为 ipa 当我想在越狱的iPhone上安装这个 ipa文件时 出现以下错误 无法将应用程序 youtapp ipa 添
  • iOS 上有像 JUNG 这样的可视化框架吗?

    有没有类似的可视化框架JUNG http jung sourceforge net applet index html对于iOS 我想实现类似的东西this http prefuse org gallery graphview iOS 上最
  • 从 UITableViewCell 隐藏删除按钮

    当我的表视图处于编辑模式时 会出现红色 按钮 当用户点击其中之一时 会出现 删除 按钮 当用户点击 删除 时 我首先检查一些内容 部分在线 可能不允许此删除 当不允许删除该单元格时 如何以动画方式隐藏 删除 按钮并让红色 按钮再次变成 所以
  • 无法在 Swift 的 Storyboard 中加载 UIViewController XIB 文件

    我读了使用 XCode 故事板实例化使用 XIB 进行设计的视图控制器 https stackoverflow com questions 9155719 using xcode storyboard to instantiate view
  • 如何将 PhoneGap 调试控制台与 CLI 集成?

    PhoneGap 网站上的此页面http docs phonegap com en 3 3 0 guide cli index md html The 20Command Line 20Interface http docs phonega
  • 为什么我的唯一设备 ID 发生了变化?

    我已经使用以下方法大约一个月了 没有任何问题 即使卸载应用程序后 设备 ID 仍保持不变 最近我注意到我的设备 ID 发生了变化 我最近在 Xcode6 上做了很多应用程序的构建 这可能是一个原因吗 我希望我确切地知道它什么时候发生变化 这
  • 如何创建粗体 UIFont

    我正在我的表格视图中进行一些自动换行 因为某些值太大 以至于超出了屏幕边缘 但是 字体 大小和粗体与表视图的默认设置不匹配 希望有人能帮助我解决这个问题 这就是我正在做的设置字段的操作 CGFloat tableView UITableVi
  • 查找 iPhone 上已安装应用程序的列表

    是否可以以编程方式查找我的 iOS 设备上安装的所有应用程序的名称 有没有可用的API 谢谢您的帮助 不可以 由于沙盒环境 iOS 应用程序无法访问其他应用程序的信息
  • 是否可以自定义区域形状?核心位置

    例如 至少我想要一个正方形 矩形 道路的形状作为我的区域 不它不是 根据文档 目前唯一的区域类是 CLCircularRegion 显然是圆形 和 CLBeaconRegion 基于与 iBeacon 的接近度 未来苹果可能会添加对自定义形
  • c# AudioFingerprinting 和局部敏感哈希

    我之前发现过类似的帖子 但没有真正回答这个问题 在我的指纹识别中 我生成了一个包含 5 个整数的记录集 例如 33 42 88 121 194 这些对应于特定音乐样本的最高幅度的频率 例如 对于 30ms 的音频样本 我有以下频率的桶 0
  • iOS7状态栏和导航栏问题

    我正在将我的应用程序迁移到 iOS 7 为了处理状态栏问题 我添加了以下代码 if UIDevice currentDevice systemVersion floatValue gt 7 0f CGRect frame self navi
  • 快速 Firebase 在异步任务中返回

    我在 swift 2 中遇到了适用于 iOS 的 Firebase SDK 的问题 我正在尝试将图片设置为从 Firebase 存储下载 当我调用该函数时 它返回 nil 我认为这是因为 Firebase sdk 提供的下载任务是异步的 因
  • 核心蓝牙框架本质上是异步的吗?

    当我在应用程序中使用 CB 框架时 我没有引入任何并发性或反应性方法 并且一切正常 当我每秒从外设接收超过 100 个样本时 UI 不会被阻止 这是否意味着它被设计为异步工作 我没有找到任何说明它具有异步性质的资源 也没有找到任何在使用核心
  • 如何使用最新的 FBSDK 在 iOS 应用程序中集成 Facebook,而不重定向 Safari 浏览器

    您好 我正在搜索避免新的 facebooksdk 重定向到 safari 的答案 如何在应用程序内打开 facebook 登录视图 如果它重定向到 safari 可能会在应用程序商店中拒绝 帮助我 提前致谢 昨天我使用以下方式提交我的应用程
  • userDidAcceptCloudKitShareWith 未被调用

    func application application UIApplication userDidAcceptCloudKitShareWith cloudKitShareMetadata CKShare Metadata 单击共享 cl
  • Java Sound可以用来控制系统音量吗?

    Java 声音优惠FloatControl各种声音线路功能的实例 以及MASTER GAIN http docs oracle com javase 7 docs api javax sound sampled FloatControl T
  • 检查indexPath处的单元格在屏幕UICollectionView上是否可见

    我有一个CollectionView向用户显示图像 我在后台下载这些 下载完成后 我调用以下函数来更新collectionViewCell并显示图像 func handlePhotoDownloadCompletion notificati
  • 使用 Objective C 将 html 字符串插入 sqlite 数据库

    我正在使用下面的代码片段将 html 字符串插入 sqlite 数据库 我的代码工作正常 但是当我检索相同的 html 字符串并在 Web 视图中显示时 它不会呈现 一些数据正在被修改 任何人都可以帮助如何插入长 html 字符串存入数据库
  • 我们可以使用 C# 录制发送到扬声器的声音吗

    我有一个软件 SoundTap Streaming Audio Recorder 它记录发送到扬声器的任何音频 无论流是来自网络还是来自某些文件或麦克风 我可以在桌面应用程序中制作这样的应用程序 以便我可以录制发送到扬声器的流 无论来源如何

随机推荐

  • 如何将 JTextField 限制为 x 个字符

    我必须限制 JTextField 中的字符数 我使用以下代码来执行此操作 但问题是我使用虚拟键盘将数据输入到 JTextField 所以偏移量始终设置为0 当我输入超过指定数量的字符时 它会重置该字段并从头开始执行 例如 如果我的限制是 3
  • 使用 ng-file-upload 和 Rails Carrierwave gem 上传多个文件

    我正在尝试结合ng 文件上传 and 载波上传多个文件 但服务器端的控制器只接收一个文件 所选文件的最后一项 客户端 参考 https github com danialfarid ng file upload usage html
  • 如何在 ejs 文件、nodeJS 应用程序中包含 JS 脚本?

    我正在做 NodeJS 教程开放课堂 https openclassrooms com courses des applications ultra rapides avec node js tp la todo list 我使用模板引擎e
  • 如何使用函数指针数组?

    我应该如何在 C 中使用函数指针数组 我怎样才能初始化它们 你有一个很好的例子这里 函数指针数组 http www java2s com Code C Function Arrayoffunctionpointer htm 与语法详细 ht
  • Webpack url 和文件加载器不适用于 Angular 2 所需的组件样式

    我正在使用 Angular 2 sass 和 webpack 构建一个应用程序 但我在每个组件内所需的 sass 文件上的 url 上遇到了麻烦 使用 require 它不会将这些文件复制到资产文件夹中 也不会将 url 修改为构建的 cs
  • 如何使用宏引用数据文件?

    我有各种 Stata 数据文件 它们位于不同的文件夹中 我也有一个单do使用这些文件的文件 一次一个 有没有办法使用宏来引用我的特定数据集do file 例如 local datafile C filepath mydata dta 我们的
  • 如何缩小java堆空间? [复制]

    这个问题在这里已经有答案了 我有一个 Java 控制台应用程序 它使用 DOM 处理大型 xml 文件 基本上 它根据从数据库获取的数据创建 xml 文件 现在 正如您猜测的那样 它使用了大量内存 但令我惊讶的是 它与错误代码无关 而是与
  • Jetpack Compose 失败,并显示 NoClassDefFoundError: 无法解析:Landroidx/compose/runtime/MutableStateKt;

    我构建了一个应用程序来使用 Jetpack compose 在 alpha 11 之前一切都工作正常 但由于我尝试将其更新到 alpha 12 甚至 beta 1 该应用程序在运行时失败并出现错误NoClassDefFoundError F
  • 如何设置占位符文本的颜色和字体样式

    我想将颜色设置为占位符 将字体样式更改为粗体 并增加大小 我怎样才能实现这个目标 我应该为占位符提供样式 还是有其他方法可以实现此目的 我想设置颜色并更改字体样式以在所有浏览器中工作 以在下面的结果中选择大小
  • 为什么点击事件总是不触发?

    如果您重新审视这个问题 我已将所有更新移至底部 因此它实际上作为一个问题读起来更好 问题 我在使用处理浏览器事件时遇到了一些奇怪的问题D3 不幸的是 这位于一个相当大的应用程序中 并且因为我完全不知道原因是什么 所以我正在努力寻找一个小的可
  • 修改栈上的返回地址

    我研究了缓冲区溢出漏洞的基础知识 并尝试了解堆栈是如何工作的 为此 我想编写一个简单的程序 将返回地址的地址更改为某个值 有人可以帮助我计算基指针的大小以获得第一个参数的偏移量吗 void foo void char ret char pt
  • C# 帮助:在 C# 中对对象列表进行排序 [重复]

    这个问题在这里已经有答案了 可能的重复 使用预定义的排序值列表对对象进行排序 https stackoverflow com questions 652337 sort objects using predefined list of so
  • 根据求解器的决定执行 get-model 或 unsat-core

    我想知道 SMT LIB 2 0 脚本中是否有可能访问求解器的最后一个可满足性决策 sat unsat 例如 以下代码 set option produce unsat cores true set option produce model
  • 选择树形布局中子节点的所有路径和父节点

    我正在跟进this http bl ocks org d3noob 8375092学习 d3 js 树布局的教程 我正在研究它 单击子节点时 我尝试选择所有祖先节点以及连接它们的路径 我已经更改了默认值click教程中的函数看起来像这样 f
  • jQuery - jQGrid - 展开、折叠网格行上的子网格单击

    Here https stackoverflow com questions 3345401有一个关于当我们单击一行时如何扩展子网格的答案 onSelectRow function rowId jqgrid id expandSubGrid
  • 我应该检查什么:cpu 时间还是 wall time?

    我有两种算法来完成相同的任务 要检查它们的性能 我应该检查什么 cpu 时间还是 wall time 我认为这是CPU时间 对吗 我正在对我的代码进行并行处理 要检查我的并行性能 我应该检查什么 cpu 时间还是 wall time 我想现
  • 使用.Net检测灰度图像

    我正在将文档扫描为 JPG 图像 扫描仪必须将所有页面扫描为彩色或将所有页面扫描为黑白 由于我的许多页面都是彩色的 因此我必须将所有页面扫描为彩色 扫描完成后 我想使用 Net 检查图像并尝试检测哪些图像是黑白的 以便我可以将这些图像转换为
  • 为什么这个 Java 程序会终止,尽管它显然不应该(也没有)终止?

    今天我实验室的一项敏感操作完全出错了 电子显微镜上的执行器超出了其边界 在发生一系列事件后 我损失了 1200 万美元的设备 我已将故障模块中超过 40K 行的范围缩小为 import java util class A static Po
  • GTK+ (2.0) - GtkEntry 上的“点击”信号?

    我正在使用 GTK 2 0 测试一些信号 我正在寻找一种在单击 GtkEntry 时发出信号的方法 if widgets info i action IG INPUT widget gt frame i gtk entry new with
  • 使用 SimpleAudioEngine 按顺序播放声音

    我正在使用 cocos2d 2 构建一个 iOS 应用程序 并使用 SimpleAudioEngine 来播放一些效果 有没有办法在前一个声音完成后按顺序播放多个声音 例如在我的代码中 SimpleAudioEngine sharedEng