在 iPhone 上播放 CAF 声音的最简单方法?

2024-01-31

做到这一点有多难?有人告诉我,在 iPhone 上播放音频非常困难。实在不敢相信。但他说玩一个很难,但同时玩两个或三个就很难了。听起来很可怕。对此大家有什么想说的吗?

我想要做什么:我有大约 10 个带有小光点、蜂鸣声和按钮按下声音的 CAF 文件。没什么特别的。现在我想每次发生事情时都播放这些文件。并且几件事情可能同时发生。因此可能会发生播放重叠的情况。

也许有一个我可以用来做到这一点的框架?


播放小声音、嘟嘟声等(听起来不到 30 秒)实际上非常简单 - 这正是 AudioServices 的目的。您需要首先获取每个声音的 ID,使用如下方法:

SystemSoundID soundID = 0;
CFURLRef soundFileURL = (CFURLRef)[NSURL URLWithString:somePathString];
OSStatus errorCode = AudioServicesCreateSystemSoundID(soundFileURL, &soundID);
if (errorCode != 0) {
  // Handle failure here
}

然后,您将保留该 ID,直到需要使用它为止,然后您可以简单地使用此行来播放声音:

AudioServicesPlaySystemSound(soundID);

还有AudioServicesPlayAlertSound()根据设备的功能,其行为会略有不同,例如,如果用户配置了设备,则振动 iPhone。你应该阅读Apple 在文档中的注释 http://developer.apple.com/library/ios/#documentation/AudioToolbox/Reference/SystemSoundServicesReference/Reference/reference.html以获得更完整的解释。

请注意,您对使用 AudioServices 的声音播放拥有最小的控制权 - 您无法停止它们、控制音量等。AudioServices 仅适用于警报声音和其他此类短促的蜂鸣声和提示音。当然,还有 AVAudioPlayer,但它比您在本例中需要的要重一些。您可能最好坚持使用 AudioServices,除非它的限制之一使其无法使用。

您需要链接 AudioToolbox.framework 才能使用这些功能。

附:欢迎来到堆栈溢出!不要忘记阅读常见问题解答并标记您的问题已接受的答案(当然,如果它们是值得接受的好答案)。

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

在 iPhone 上播放 CAF 声音的最简单方法? 的相关文章

  • 当 UITextField 已满或空时显示警报 Swift

    下面的代码中 如果 userNameTF 或 passwordTF 已满或为空 则会显示警报 IBAction func LoginBtn sender AnyObject let userName userNameTF text let
  • 关于窗口层次结构的警告

    我的调试器中出现这样的警告 这是什么意思 Warning Attempt to present
  • 应用内购买产品禁用“提交审核”

    基于此处提到的所有步骤http troybrant net blog 2010 01 in app purchases a full walkthrough http troybrant net blog 2010 01 in app pu
  • 架构armv7的重复符号

    尝试在我现有的应用程序中使用 Layar SDK 时出现以下错误 我该如何解决这个问题 Ld Users pnawale Library Developer Xcode DerivedData hub afxxzaqisdfliwbzxbi
  • iPhone 和加密库

    我想我必须在我的 iPhone 应用程序中使用加密库 我想问你有关苹果公司实施的加密货币出口政策的影响 我需要做一些额外的事情吗 例如填写表格等 1 如果我使用 MD5 进行哈希处理 2 如果我使用对称加密 Thanks EDIT 2009
  • CGImage/UIImage 在 UI 线程上延迟加载会导致卡顿

    我的程序显示一个水平滚动表面 从左到右平铺有 UIImageViews 代码在 UI 线程上运行 以确保新可见的 UIImageView 分配有新加载的 UIImage 加载发生在后台线程上 一切工作几乎都很好 除了每个图像变得可见时出现口
  • 在运行时获取 iPhone 应用程序的产品名称?

    如何才能实现这一目标 我想获取名称 以便可以在应用程序中显示它 当然 每次更改名称时不必在代码中更改它 Try this NSBundle bundle NSBundle mainBundle NSDictionary info bundl
  • 仅将 UIImage 移动到另一个 UIImage 内部

    I have an UIImage which is shown in an UIImageView I also have another image in an UIImageView which lays above the firs
  • 在午夜更新应用程序徽章,并提供以下选项:应用程序未启动或在后台,徽章数量可能会减少

    我正在阅读许多有关本地通知的内容以及它们如何帮助更新应用程序徽章编号 我想在午夜更新此徽章 并将其值设置为我在午夜之前无法知道的数字 因此 如果可能的话 我想在午夜启动一个功能来更新 加载一些数据 检查要显示的数字 并将其显示在徽章上 当然
  • 检索 iPhone 中的 Outlook 联系人

    我想通过应用程序导入所有 Outlook 联系人 有什么办法可以做到这一点吗 请告诉我 您可以通过实施 Microsoft Exchange 服务器协议来实现此目的 微软MSDN http msdn microsoft com en us
  • 使用 NSDateFormatter 从字符串中获取日期,无论 12 小时到 24 小时设置如何

    今天我的问题是关于日期格式和字符串 我的应用程序从互联网下载一些表示日期的字符串 日期格式始终是这样的 2010 05 24 at 20 45 我需要将此字符串转换为 NSDate 对象才能执行一些日期操作 我尝试了这段代码 NSStrin
  • Objective-C中如何使继承的类能够看到父类的隐藏方法[重复]

    这个问题在这里已经有答案了 我有两个类 Class1 和 Class2 第二个类继承自第一个类 我需要重写 Class1 的 update 方法来实现我的目标 继承方法中 update方法的改变是在代码中间进行的 所以我不能使用 超级更新
  • iPhone 允许光传感器作为输入吗?

    我只是想知道 iPhone 的开发是否允许使用光传感器 作为按钮或动作元素 我在网上找到了这个链接 可以使用光传感器作为按钮吗 存档 Touch Arcade 如果有人能阐明这个问题 我将不胜感激 Apple 代表的官方答复位于苹果开发者论
  • 防止UIScrollView的UIPanGestureRecognizer遮挡UIScreenEdgePanGestureRecognizer

    我有一个UIScrollView它填满了我应用程序的一页上的屏幕 但我希望允许用户从屏幕边缘平移以显示其后面的视图 问题是 UIScrollView 窃取了我的触摸UIScreenEdgePanGestureRecognizer在屏幕边缘
  • 如何减少典型 iPhone 应用程序的启动时间?

    需要明确的是 这是一个普通的 iPhone 应用程序 而不是游戏 我在网上读过几次 一些开发人员提到他们正在努力改进 减少应用程序的启动时间 但从来没有提供任何关于如何做到这一点的良好背景信息 那么问题很简单 如何减少 iPhone 应用程
  • 有什么方法可以让我知道按屏幕的力度有多大

    我想找到触摸的压力 我只是不知道如何在不越狱并获取原始触摸数据的情况下实现该结果 有谁知道我会怎么做 你无法获得来自SDK的压力nor未记录的方法 然而你can使用未记录的方法检测触摸的大小 在 GSEvent UIEvent 的较低级别表
  • 沿着预定路径移动图像?

    是否可以通过按下 iphone SDK 中的按钮来将图像设置为沿着预定路径运动 我不是在寻找任何奇特的东西 我正在研究一个简单的概念 但这会节省大量动画工作 是的 您可以通过创建一个路径来为任何 CALayer 制作动画CAKeyframe
  • 混合静态和动态 UITableViewController 内容会导致 NSRangeException

    我一直在寻找这个错误 并找到了一些具有类似行为的帖子 但没有解决问题的解决方案 我有一个 UITableViewController 在 SB 中声明为静态 它具有以下部分 第 0 部分 配方 是静态的 有 4 个单元格 第 1 部分 口味
  • 重置转换后的 UIView 的原点会变得疯狂

    我使用 UIView transform 旋转 缩放 UIVIew 效果很好 然而 一旦我更改视图的框架原点 即使我没有执行任何进一步的 CGAffineTransforms 视图的内容也会开始 奇怪 地缩放 为什么会出现这种情况 我该如何
  • 对使用phonegap和钛的质疑[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 最近我听说了 PhoneGap 和 Titanium 移动网络应用程序的开发 我分析了这两个 Web 应用程序 并了解了如何使用它们以

随机推荐

  • 使用 NSUserdefaults(xcode,swift2) 保存 datePicker 值

    我们如何通过 nsuserdeafaults 或其他方式保存 datepicker 的值 例如 如果一个人选择下午 5 点 那么当他返回应用程序时 他应该在 datepicker 上看到下午 5 点 我不知道如何将 nsusersdefau
  • 当我尝试拖动时,自定义 MKAnnotation 图像会恢复为默认值

    我有一堆不需要拖动的 MKAnnotations 我设置这个 pin setDraggable NO 当我触摸注释并 意外地 拖出注释时 我遇到了问题 它会立即丢失其自定义图像并更改回默认的红色图钉 我该如何防止这种情况发生 在 viewF
  • svn:ignore 不忽略 xcuserdata

    我是第一次使用 svn ignore 属性 所以我可能会误解一些东西 我正在开发一个 iOS 应用程序 我有一个 Xcode 项目 我想忽略 xcuserdata 文件夹 使用 Mac 终端应用程序 我转到 svn 存储库的根目录并尝试使用
  • 在 EntityObject 中的自定义属性上引发 PropertyChanged

    我在 EntityObject 上有几个自定义计算属性 我想触发 PropertyChanged 事件来通知所有绑定 但这不起作用 当我使用 ReportPropertyChanged 时 它会引发参数异常 De eigenschap 名称
  • JavaFX 代码编辑器,带有 Java 代码内容荧光笔

    我想在 JavaFX 中编写一个文本编辑器 其作用类似于 Eclipse Netbeans IDE 以突出显示 Java 代码 任何人都可以建议如何实现它 或者任何人以前已经这样做过 Thanks 据我所知 没有用于代码突出显示 编辑的纯
  • 长时间运行的进程中 DbContext 的生命周期[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 假设我有一个长时间运行的进程 例如 Windows 服务 需要从多个线程访问数据库 DbContext 不是线程安全的 而且最好不要长
  • 我如何编码 SplashScreenActivity.kt 因为我的不起作用[关闭]

    Closed 这个问题是无法重现或由拼写错误引起 help closed questions 目前不接受答案 我想向我的应用程序添加启动屏幕 因此我创建了一个名为 SplashScreen 的活动 我将此代码添加到 SplashScreen
  • 了解python中的Queue模块(如何运行它)

    最近引入了关于延迟处理能力以及实现 先进先出 等的队列设计 查看文档 试图获取示例队列 以了解如何在我自己的设计 程序中实现它 但我在运行这段代码时遇到了问题 import queue def worker while True item
  • 消失的存储过程

    所以 不确定发生了什么 但我有存储过程 它在 SQL 2k 中不断从我的数据库中消失 我可以再次添加它 然后尝试从我的网络应用程序执行它 但出现异常 提示无法找到存储过程 然后我会回到管理层并刷新 然后它又消失了 这是存储过程的配置 set
  • Android 树视图

    我知道有可扩展列表视图 http developer android com reference android widget ExpandableListView html但最多只支持2级 我需要一个真正的树视图垂直列表 至少有大约 5
  • 如何在树枝模板中输出胡子模板?

    我需要使用 symfony2 将胡子模板添加到 Twig 模板中 有人为 django 创建了一个 逐字 模板标签 我正在为 twig 寻找一个相应的模板标签 以防止它解析 Mustache 元素 有人能指出我正确的方向吗 Thanks 我
  • 为 ggplot2 生成亮色和暗色对

    brewer pal n 8 name Paired 最多可以创建八个颜色对 但其中只有少数颜色适合打印 有没有更灵活的函数可以生成深色吊坠 应该是深色的 在黑暗中看起来像相同的颜色 可打印 很容易与亮色区分开来 有没有 colorbrew
  • 设计基于权限的安全模型

    我在开发一个 vb net winforms 应用程序 目前我们使用简单的角色来确保安全 我们根据当前用户是否具有所需的角色来启用 禁用特定控件 我们已经到了这样的地步 这已经不够精细了 我们的应用程序基于我们称之为站点的不同物理位置 用户
  • 有什么方法可以找出 Angular 2 中触发变化检测的因素吗?

    我最近发布了一个新组件 它似乎每秒多次触发更改检测 some debugging code ngDoCheck console log DO CHECK new Date toLocaleTimeString Results 我还没有弄清楚
  • 使用 Redux 时如何声明 ReactJS 默认 props?

    在 React 中声明默认 props 的正确方法是什么 这样当我在使用 redux 异步分配的 props 上调用 map 时 我就不会收到未定义的错误 现在 使用以下语法 在尝试分配 trans filter 时出现错误 因为数据在渲染
  • 在非对象上调用成员函数 count() (Laravel 5)

    我有一个项目列表 我可以单击它 它 需要 显示项目名称以及项目任务列表 ToDo 应用程序 但是当我单击某个项目时 我收到此错误 H2 项目名称将显示 h2 gt project gt name if project gt tasks gt
  • Android 无法保留嵌套在其他片段中的片段

    我的应用程序有问题 我尝试在另一个Fragment中添加三个Fragment 然后 Eclipse 显示 java lang IllegalStateException 无法保留嵌套在其他片段中的片段 这是我在 childFragments
  • 在常量表达式中调用“static constexpr”函数是...错误? [复制]

    这个问题在这里已经有答案了 我有以下代码 class MyClass static constexpr bool foo return true void bar noexcept foo 我希望从那时起foo is a static co
  • OracleConnection.Open 抛出 ORA-12541 TNS 无侦听器

    所以我通过 C 连接到外部服务器 我刚刚安装甲骨文11g我的机器上的客户端从这里 http www oracle com technetwork database windows downloads index 090165 html ht
  • 在 iPhone 上播放 CAF 声音的最简单方法?

    做到这一点有多难 有人告诉我 在 iPhone 上播放音频非常困难 实在不敢相信 但他说玩一个很难 但同时玩两个或三个就很难了 听起来很可怕 对此大家有什么想说的吗 我想要做什么 我有大约 10 个带有小光点 蜂鸣声和按钮按下声音的 CAF