iPhone - 同时启动 AVAudioPlayer 的多个实例

2024-01-06

我正在使用 AVAudioPlayer 的多个实例同时播放多个音频文件。我运行一个循环来开始播放音频文件(预先调用 prepareToPlay 并且循环仅调用 play 方法)

但不可避免的是,其中一名球员的比赛并不同步。如何确保所有 4 个播放器同时开始播放音频?

Thanks.


The 苹果文档 http://developer.apple.com/library/ios/#DOCUMENTATION/AVFoundation/Reference/AVAudioPlayerClassReference/Reference/Reference.html谈谈如何“同时播放多个声音,每个音频播放器播放一个声音,并精确同步”。也许你需要打电话playAtTime: e.g. [myAudioPlayer playAtTime: myAudioPlayer.deviceCurrentTime + playbackDelay];

事实上,playAtTime 的 Apple 文档: http://developer.apple.com/library/ios/DOCUMENTATION/AVFoundation/Reference/AVAudioPlayerClassReference/Reference/Reference.html#//apple_ref/occ/instm/AVAudioPlayer/playAtTime%3a包含以下代码片段:

NSTimeInterval shortStartDelay = 0.01;            // seconds
NSTimeInterval now = player.deviceCurrentTime;

[player       playAtTime: now + shortStartDelay];
[secondPlayer playAtTime: now + shortStartDelay];

它们应该同时播放(假设您选择了足够大的值)shortStartDelay-- 不会太快,以至于它会在该线程返回或其他什么之前发生)。

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

iPhone - 同时启动 AVAudioPlayer 的多个实例 的相关文章

  • 持久化 UINavigationItem 的 rightBarButtonItem 属性

    这可能是一个愚蠢的问题 但是有可能保持正确的吗 UIBarButtonItem跨由一个管理的多个视图UINavigationController 我的一系列观点通常具有相同的权利UIBarButtonItem 但是当我将新视图推送到我的UI
  • 忽略触摸事件,让其下面的视图处理触摸?

    我有一个用户可以触摸的可拖动视图 但它的某些矩形将没有图像 alpha 0 当用户单击透明区域时 我能够在没有 alpha 信息的情况下构造透明区域 我希望透明区域下方的视图 同一类 来检测触摸 我的策略是当用户触摸透明区域时让视图忽略触摸
  • 如何禁用 iPhone 邮件应用程序中的电话号码链接?

    我的公司正在发送数字电子邮件收据 但遇到了 iPhone Mail 检测数字数据并将其自动链接为电话号码的问题 我已经看到元标记应该可以解决 iPhone 上的 Mobil Safari 中的问题 但该技巧似乎不适用于 Mail 有谁知道如
  • UIImageJPEGRepresentation 在视网膜显示屏上提供 2x 图像

    我有这段代码 它创建一个图像 然后向其添加一些效果并缩小其大小以使其largeThumbnail UIImage originalImage UIImage imageWithData self originalImage thumbnai
  • 有没有类似于 iOS 的 canOpenURL 来检查移动浏览器的 URL 方案? [复制]

    这个问题在这里已经有答案了 可能的重复 iPhone Safari 检查 JavaScript 是否支持 URL 方案 https stackoverflow com questions 627916 iphone safari check
  • iPhone X 将对象底部与安全区域对齐会破坏其他设备上的外观

    关于 iPhone X 自动布局怪癖的问题 我有两个按钮 以前这些按钮将与超级视图底部对齐 偏移量为 20 以免它们接触屏幕底部 此后我将链接更改为安全区域而不是超级视图 Here s the original setup Looks go
  • 如何在iOS中查找文本段范围

    如何在 iOS 中找到文本段 又名代码段 范围 意思是 文本段的起始地址和结束地址是多少 I found 这个有趣的帖子 http www pschweitzer fr p 12但它适用于 Android 但不适用于 iOS 经过一些挖掘和
  • ABPeoplePickerNavigationController - 在不使用私有方法/属性的情况下删除“取消”按钮?

    我正在使用 ABPeoplePickerNavigationController 它是 UINavigationController 的子类 在我使用它的上下文中 右侧的默认导航栏按钮 取消 没有任何意义 我找不到禁用或隐藏它的方法 并且无
  • 如何呈现半屏模态视图?

    我有一个 UIViewController 当按下按钮时 我想要一个半屏视图向上滑动 其中有一个 UIPicker 我在 IB 中使用 UIPicker 和带有 完成 取消 按钮的 UIToolBar 制作了一个 UIView 我怎样才能做
  • 使用可达性有什么好处?

    与下面的代码相比 使用 Reachability 有什么优势 我觉得 Reachability 有大量代码 但如果它在任何方面更好 那么我会使用它 NSString connectionString NSString alloc initW
  • AUGraphInitialize添加kAudioUnitSubType_Reverb2到AUGraph时出现错误代码-10868

    我正在尝试添加 AudioUnit 类型kAudioUnitSubType Reverb2 to an AUGraph我得到了 10868 kAudioUnitErr FormatNotSupported 支持的错误AUGraphIniti
  • 以编程方式单击 tabbarController 的选项卡

    我有 2 个带有 Nib 文件的选项卡按钮 在按下选项卡 1 上的按钮时 我希望它显示选项卡 2 的视图 而不是单击选项卡栏按钮 2 我的意思是 我想以编程方式单击第二个选项卡栏按钮 我怎样才能做到这一点 可能吗 您必须创建一个包含以下内容
  • 按钮操作在 iPhone 中不起作用?

    我有一个 iPhone 应用程序 我在其中添加一个自定义视图 尽管有一个导航栏视图 在正常情况下 我隐藏该自定义视图 并在需要时取消隐藏它 现在 我正在向该自定义视图添加一个具有操作的按钮 但是当我点击它时 没有任何操作起作用 任何人都可以
  • MPMediaItemPropertyAssetURL 仅针对 iPhone 5s 返回 null

    我一直在使用以下代码从 MPMediaItemPickerController 返回的 MPMediaItem 对象中提取资产 url 以便我可以将音乐文件从用户 iPhone itunes 音乐库复制到文档文件夹进行处理 但在 iPhon
  • 如何通过填充 NSDictionary 以 JSON 格式发送 UIImage

    我正在尝试使用 JSON 将数据发送到服务器 我可以使用我的对象和关键参数创建 NSDictionary 但我想发送我的图片 图片是UIImage NSDictionary mainJSON NSDictionary dictionaryW
  • 在iPhone上将CSV文件读入sqlite3

    有没有办法在iPhone上将CSV文件读入sqlite3 sqlite3 是否有类似于 SQL 命令的功能 LOAD DATA LOCAL INFILE file csv INTO TABLE TABLENAME FIELDS TERMIN
  • 创建自定义 MCBrowserViewController

    有没有办法创建一个UITableView包含在中找到的相同信息MCBrowserViewController 我当前的代码只允许推送与我的应用程序设计不同的标准视图 self browserVC MCBrowserViewControlle
  • 方向改变时重新定位控件

    我知道自动布局可用于在方向改变时使尺寸和位置保持一致 当方向改变时 是否可以完全改变布局 例如 请查看下面的纵向模式下简单登录屏幕的线框 现在 如果我旋转设备 我想完全重新定位控件 这种事情可以用自动布局来完成吗 如果没有 我该怎么办 谢谢
  • 在完成块中保留循环

    在我的课堂上 我创建了这个方法 void refreshDatasourceWithSuccess CreateDataSourceSuccessBlock successBlock failure CreateDataSourceFail
  • 如何在 UITableView 中显示零行的表格

    我正在动态地将内容加载到 UITableView 中 如果有数据 表格需要显示数据 如果没有数据 表格应显示普通页面 但在我的应用程序中 表格显示带有两条分隔线的普通页面 我需要删除此分隔线并显示纯白色页面 请建议 任何帮助 将不胜感激 如

随机推荐

  • 在 JAR 中指定 JVM 堆大小

    我正在尝试编写一个游戏引擎 但它需要比默认设置更多的内存 我知道如果您双击一个 jar 则会使用默认设置 那么我是否可以指定 JAR 在其清单文件 或其他地方 中需要自定义堆大小 此外 引擎位于它自己的 jar 中 游戏位于另一个 jar
  • 在 Python 包中包含 *.pyd 文件

    我有一个 python 模块模块 pyd一旦手动将其放入 python 安装文件夹的站点包中 它就可以正常工作 当我将解决方案上传到云环境时 问题就开始了 构建包要求我将每个模块作为要安装的包传递pip install module 我创建
  • 如何覆盖Resources.Designer.cs中默认的System.Resources.ResourceManager?

    我想覆盖System Resources ResourceManager from Resources Designer cs文件来实现自定义 ResourceManager GetString 方法功能 这可能吗 我创建了一个Custom
  • 在任何其他方法调用之前自动调用方法

    我有大量的类继承大量的接口 这些类正在实现的接口不共享任何公共方法 但它们都共享一个公共的第一步 一个例子是 A类看起来像这样 class A InterfaceA GetFoo Database db PerformSetup db Th
  • python 如何打印压缩文件的百分比

    我想获取压缩文件时的百分比 例如它会打印 1 2 3 等 我不知道从哪里开始 我现在只有压缩文件的代码 该怎么做呢 Code zipPath zipfile ZipFile Files Zip pic zip w for root dirs
  • JavaScript域从子域读取cookie

    我有一个简单的问题 有没有办法通过 JavaScript 读取主域上的子域 cookie 例如 我在子域 yes something com 中设置了值为 2 的 cookie hello 之后我想在 Something com 上读取它
  • 如何在android中使用GSON解析以下JSON?

    As keysArray A B C 是dynamic and cores具有相同的对象名称 请帮忙 result success keysArray A B C D E cores A key value B key value C ke
  • Appium:在开始 appium-testng 测试运行之前,如何使用 java 在 aws device farm 设备上以编程方式创建 google 帐户

    我想在 aws 设备场上运行我的自动化 Android 套件测试用例 大部分脚本是使用 gmail 登录创建的 在实时设备上 可以手动配置 Gmail 帐户 因此每当脚本运行时 都会弹出已配置的 Gmail 帐户以供登录 但对于 aws 设
  • Pycharm:通过鼠标悬停启用变量/名称/标记的工具提示?

    我正在寻找类似于 Visual Studio 将鼠标悬停在编辑器中的任何内容 类型信息 方法详细信息 其他有用信息等 上时显示工具提示的方式 这是 PyCharm 中的可配置选项吗 我还没有找到它 Thanks 仅可通过快速文档热键使用 对
  • 错误:eglSurfaceAttrib 未实现

    我正在尝试使用 aChartEngine 显示折线图 但是 页面显示为空白 并且我收到错误 eglSurfaceAttrib 未实现 进度 显示 页面代码
  • 如何比较批处理文件中的两个文件?

    如何比较批处理文件中的两个文件 并根据它们是否匹配执行操作 我尝试过类似的事情 if file1 txt NEQ file2 txt goto label 但它比较实际的字符串 file1 txt 而不是文件 我读过有关 COMP 命令的内
  • 我应该何时保存 Windows Phone 7 上的设置?

    我有一个调用的设置保存方法 但我尝试卸载 并且失去焦点 应用程序将关闭并且在使用这两种方法之前不会保存 我应该什么时候保存应用程序设置以避免这种情况发生 我应该使用计时器并每 30 秒保存一次 还是什么 您保存的频率取决于您的应用程序 然而
  • 创建 MySQL 表时出现语法错误

    也许我太习惯 Postgres 但为什么我会收到此错误 您的 SQL 语法有错误 检查手册 与您的 MySQL 服务器版本相对应 以便使用正确的语法 靠近 id int not null AUTO INCRMENT 电子邮件 varchar
  • Gradle 可以按特定顺序运行两个测试吗?

    我们正在将一些 ant 构建脚本迁移到 gradle 并在此过程中诊断问题 出现的一个问题是 在 CI 服务器 运行 gradle 的 jenkins 上 我们偶尔会遇到测试失败的情况 我们认为该问题与测试执行顺序有关 因为失败的测试之一在
  • 增强线程池

    我的应用程序需要一个线程池 并且我想尽可能依赖标准 C 11 或 boost 的东西 我意识到有一个非官方的 boost线程池类 它基本上解决了我所需要的 但是我宁愿避免它 因为它不在boost库本身中 为什么它仍然不在核心库中很多年 在此
  • 将 python 的默认版本从 32 位更改为 64 位

    我正在尝试将默认的 python exe 从 32 位切换到 64 位 我第一次下载并安装 python 时 我下载的是 32 位版本 后来我在我目前正在进行的项目中发现 我需要 64 位版本的 python 才能使所有内容兼容 我已经卸载
  • 使用 sscanf 解析文本文件的整数和浮点值

    我想将包含这些字段的文件解析为整数和浮点变量 我尝试使用 fscanf strtok sscanf 来执行此操作 但它们都不起作用 文件的一些行 fed18 5 7 12 7 144997 8087 267345 100776 fedora
  • 删除数组中的元素而不对索引进行硬编码?在斯威夫特

    这是我的第一篇文章 我很高兴加入这个社区 我正在通过 Ray Wenderlich 的视频教程学习 Swift 我在第 3 课中遇到的挑战是删除数组中的元素而不对索引进行硬编码 我理解雷提供的正确答案 但只是不明白为什么我的答案不起作用 请
  • 使用 Docker Centos 7.5 映像运行 GitLab CI 管道时,ChromeHeadless 超时

    因此 我尝试使用 GitLab CI 管道在 Centos 7 5 的 docker 映像上运行 Angular 6 应用程序的 Karma 测试 问题是 30 08 2018 07 09 55 222 WARN 启动器 ChromeHea
  • iPhone - 同时启动 AVAudioPlayer 的多个实例

    我正在使用 AVAudioPlayer 的多个实例同时播放多个音频文件 我运行一个循环来开始播放音频文件 预先调用 prepareToPlay 并且循环仅调用 play 方法 但不可避免的是 其中一名球员的比赛并不同步 如何确保所有 4 个