如何检测音效何时播放完毕?

2024-07-03

我正在使用 SimpleAudioEngine,并试图在继续之前检测声音效果是否已完成播放。

我正在寻找任何方法,但我试图实现的方法不起作用!

CDSoundEngine *engine = [CDAudioManager sharedManager].soundEngine;    
ALuint soundId = [[SimpleAudioEngine sharedEngine] playEffect:soundId];

float seconds = [engine bufferDurationInSeconds:soundId];

每次我使用 bufferDurationInSeconds 时,它都会向变量秒返回浮点值 -1。我检查了实现,当 id 无效时它返回 -1,但我 100% ID 有效!

谁能帮助我解决这个问题,或者建议我用另一种方法来检测声音效果的结束?


中提琴!获取 CDSoundSource,然后从中获取 soundId。

(第二行是可选的,它只是播放声音)。

CDSoundEngine *engine = [CDAudioManager sharedManager].soundEngine;
[[SimpleAudioEngine sharedEngine] playEffect:@"soundeffect.m4a"];
CDSoundSource *aSound =[[SimpleAudioEngine sharedEngine] soundSourceForFile:@"soundeffect.m4a"];
float seconds = [engine bufferDurationInSeconds:aSound.soundId];

另外,为了在播放完毕后立即运行一个方法,我将使用一个使用秒结果的 NSTimer。

[NSTimer scheduledTimerWithTimeInterval:seconds target:self selector:@selector(aMethod) userInfo:nil repeats:NO];

然后最终的方法实现一些东西。

-(void)aMethod 
{
NSLog(@"finished playing");
}

虽然,这不会影响 -1 结果,但我必须指出 soundId 变量在代码中作为两种不同类型出现两次,在同一行中,这将导致问题。不过不用担心,我已经成功测试了上面的方法。

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

如何检测音效何时播放完毕? 的相关文章

  • 将 Float 数组写入二进制文件并在 swift 中读取

    我怎样才能写数组Float到二进制文件然后读取它 var array Float 0 1 0 2 0 3 func writeArrayToBinary array Float func readArrayFromBinary gt Flo
  • React-Native 服务器驱动的 ui

    我总是想知道 Airbnb Flipkart 和 Swiggy 等应用程序如何动态更新其 UI 即使我没有更新应用程序 Flipkart 在节日期间也会显示不同的 UI 而 Swiggy 总是根据设备位置更改其 UI 我如何在我的react
  • Xcode 10 构建失败,并显示“Command CompileSwift 失败,退出代码非零”

    我最近将 Xcode 更新到版本 10 并在尝试构建项目时开始收到一个奇怪的错误 我目前使用的是 Swift 4 0 我确实尝试升级到 Swift 4 2 版本 但是当我这样做时 我在许多框架中都收到了同样的错误 命令编译 Swift 失败
  • 我如何请求增加 iPad 上的 HTML5 本地存储大小,就像 FT 网络应用程序那样?

    如果你打开http app ft com http app ft com 金融时报移动网络应用程序 系统会提示您将该应用程序添加到您的 主页 执行此操作后 当您打开应用程序时 系统会再次提示您允许将 localstoreage 数据库大小增
  • 无法加载捆绑包“MyProjectUITests”,因为它已损坏或缺少必要的资源。尝试重新安装捆绑包

    我愿意向我的应用程序添加单元和 UI 测试 我首先成功配置了单元测试 我尝试对 UI 测试执行相同的操作 添加新的 UI 测试包目标后 这是我的 Podfile platform ios 8 0 use frameworks inhibit
  • 如何对字符串进行 URL 编码

    我有一个 URL 字符串 NSString 带有空格和 人物 如何对整个字符串 包括 符号和空格 很遗憾 stringByAddingPercentEscapesUsingEncoding并不总是 100 有效 它对非 URL 字符进行编码
  • Xcode 6 具有 Swift 超慢打字和自动完成功能

    是只有我还是 Xcode 6 6 0 1 with Swift 似乎是超级慢当您键入代码时 尤其是使用自动完成功能时 一个普通的 Objective C 类 即使在 Swift 项目中 工作原理也几乎和以前一样 所以是 Swift 杀死了它
  • sqlite+fmdbvacuum命令后内存泄漏(?)

    我通过 FMDB 包装器在我的应用程序中使用 sqlite 在调用 VACUUM 之前 我的应用程序中的内存使用量为 2 25 MB myFmdb executeUpdate VACUUM 后记是 5 8 MB 我似乎无法回收内存 真空后
  • iPhone 上的图像处理

    我想对 iPhone 拍摄的照片进行图像处理 该处理将涉及二维矩阵卷积等 我担心嵌套的性能NSArrays会很糟糕 操作基于像素的图像的正确方法是什么 我应该简单地使用分配的 C 数组吗malloc 你有没有看过石英二维 http deve
  • 应用程序删除后的iOS应用程序持久设置

    我们正在创建一个应用程序 如下所示 用户从 2 个免费 代币 开始 用户可以通过应用内购买 0 99 美元购买一包 10 个代币 我们已经实现了这个使用NSUserDefaults保存令牌数量 有没有办法让我们的免费 2 令牌设置持久化 即
  • 什么是“响应 backboardd 的终止而终止”?

    我在滑块的帮助下使用一段代码在视图上添加阴影 滑块设置为 15 到 15 此代码在以下情况下效果很棒slider value为正 但如果为负 应用程序将停止工作 崩溃日志很奇怪Terminating in response to backb
  • 如何刷新 WatchApp 复杂功能

    所以我正在尝试更新headerTextProvider 每一秒都有一个Timer scheduledTimer withTimeInterval 1 repeats true timer in 我想这不是正确的做法吗 MY STUFF HE
  • 不要在 iOS 上显示蜂窝数据警告

    如果用户决定不允许应用程序在每次尝试打开应用程序时访问蜂窝数据 则会显示一条警告 告诉他们蜂窝数据已关闭 SDK中有没有办法停止显示此消息或控制其显示的时间 位置 如果您在权限被撤销的情况下尝试访问互联网 系统将显示此消息 为了防止它出现
  • 命令 /Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang 失败,退出代码 1

    我正在尝试使用 Xcode 4 3 中的 pdf 套件执行一个读取 pdf 的应用程序 但它给了我以下错误 ld duplicate symbol OBJC METACLASS OverlayManager in Users dt4it L
  • 如何重试基于块的 URL 请求

    我正在使用 iOS7 的新 URL 请求方法获取数据 如下所示 NSMutableURLRequest request NSMutableURLRequest requestWithURL NSURL URLWithString self
  • Windows 8 - 低延迟音频

    我正在考虑为即将推出的 Windows 8 开发一个应用程序 该应用程序需要低延迟音频录制和播放 我正在尝试找出操作系统是否支持这一点 而不是其他平台 http code google com p android issues detail
  • 为什么 UIPickerView 是半透明的

    Why UIPickerView 100不是不透明的吗 当我将文本颜色设置为白色并将 UIPickerView 放在红色背景上时 UIPickerView 项目有一个红白色文字颜色 我尝试使用自定义视图viewForRow 但还是没有效果
  • 在类型中找不到枚举大小写开关

    有人可以帮我解决这个问题吗 我有以下内容public enum public enum OfferViewRow case Candidates case Expiration case Description case Timing ca
  • 删除 iOS 中的后台位置警报?

    我正在编写一个跟踪用户位置的导航应用程序 为了继续显示有关路线的通知 当手机锁定 接听电话等时 我还需要在应用程序处于后台时继续跟踪位置 Capabilities gt Background Modes gt Location update
  • 导航回 ViewController 时出现重复消息问题

    我有一个 ViewController 它向用户显示更多信息 然后他们单击一个按钮 它将它们发送到我的 messageView 它是一个 JSQ ViewController JSQViewController 使用集合视图类 当用户导航回

随机推荐