使用 AVPlayer 的 MTAudioProcessingTap 和远程 URL 进行 AVFoundation 音频处理

2024-04-23

关于以下内容的文档很少AVA音频混合 http://developer.apple.com/library/mac/#documentation/AVFoundation/Reference/AVAudioMix_Class/Reference/Reference.html和 MTAudioProcessingTap,它允许将处理应用于 AVFoundation(在 iOS 上)中媒体资产的音轨(PCM 访问)。这article https://chritto.wordpress.com/2013/01/07/processing-avplayers-audio-with-mtaudioprocessingtap/我在 WWDC 2012 会议上找到的只是一个简短的提及。

我已经得到了描述的设置here https://chritto.wordpress.com/2013/01/07/processing-avplayers-audio-with-mtaudioprocessingtap/适用于本地媒体文件,但似乎不适用于远程文件(即 HLS 流 URL)。唯一表明这是预期的情况是本文末尾的注释技术问答 http://developer.apple.com/library/ios/#qa/qa1716/_index.html:

AVAudioMix 仅支持基于文件的资源。

有人对此了解更多吗?当资产不是基于文件时,真的没有办法访问音频 PCM 数据吗?谁能找到与 MTAudioProcessingTap 相关的实际 Apple 文档?


我注意到很多人在互联网上询问这个问题,普遍的共识似乎是这是不可能的。

事实证明是这样的 - 我最近在个人项目中对此进行了研究,并确定确实可以使 MTAudioProcessingTap 与远程流一起工作。技巧是KVO观察AVPlayerItem的状态;当它准备好播放时,您可以安全地检索底层 AVAssetTrack 并在其上设置 AudioMix。

我在这里用一些(主要是工作的)代码写了一个基本的文章:http://venodesigns.net/2014/01/08/recording-live-audio-streams-on-ios/ http://venodesigns.net/2014/01/08/recording-live-audio-streams-on-ios/

如果你已经设法处理这个问题,那么你就会拥有更多的权力,但我想我会回答这个问题,因为它很快就会在谷歌中出现。

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

使用 AVPlayer 的 MTAudioProcessingTap 和远程 URL 进行 AVFoundation 音频处理 的相关文章

  • GeoFire Swift 3 - 保存和更新坐标

    我正在尝试使用 GeoFire 将坐标存储到 Firebase 数据库中 我不确定如何更新新坐标 因为它们每秒都会更改 更新 随着childByAutoId 它正在为每辆自行车生成一个新的唯一 ID 如何引用这个唯一的自行车 ID 例如 用
  • 在 Xcode 5 中重命名 iOS 项目[重复]

    这个问题在这里已经有答案了 我需要重命名一个 iOS 项目 有没有办法在不开始一个全新项目的情况下做到这一点 我发现的所有其他信息都与 Xcode 4 或旧版本相关 这些方法似乎使项目崩溃 我在尝试任何名称更改之前创建了一个快照 在 Xco
  • 将 SSLSetEnabledCiphers 与 AFNetworking 结合使用来禁用弱密码

    我正在尝试禁用一些密码 弱 例如单个 DES 单个 DES 40 位等 我尝试过使用这段代码在 Cocoa 中使用 CFSocket CFStream 时如何设置 SSL 密码 https stackoverflow com questio
  • Firebase 身份验证问题 - 通过电子邮件地址检查用户是否存在

    我在 Firebase 上创建了一个帐户 它有效 但现在我想阻止人们使用已存在的电子邮件地址创建帐户 这是代码 DatabaseManager shared userExists with email completion weak sel
  • ios水平居中约束问题?

    I am having hard time in learning constraints auto layout in iOS I have used any width any height I have a storyboard sc
  • UIImageJPEGRepresentation 在视网膜显示屏上提供 2x 图像

    我有这段代码 它创建一个图像 然后向其添加一些效果并缩小其大小以使其largeThumbnail UIImage originalImage UIImage imageWithData self originalImage thumbnai
  • Xcode 8 / Swift 3:“UIViewController 类型的表达式?未使用”警告

    我有以下函数 它之前编译得很干净 但在 Xcode 8 中生成警告 func exitViewController navigationController popViewController animated true UIViewCon
  • 如何动态获取 UITableViewCell 的高度

    我创建了自定义的tableViewCell 我在UITableViewCell中添加了UIView SubView 所以我在 UIView 中的所有动态文本和图像内容都会根据文本和图像大小而变化 但现在 HeightforRowAtInde
  • 如何使用 alamofire 通过基本身份验证上传图像?

    我正在尝试使用 alamofire 4 7 1 和此代码上传图像 但说实话 我怀疑我没有编写正确的代码来上传图像 func uploadDefect defectRemark String defectLocation String def
  • 在 iOS 应用程序中拨打电话

    我有一些代码尝试在应用程序中进行调用 但它似乎不起作用 UIApplication myApp UIApplication sharedApplication NSString theCall NSString stringWithForm
  • 使用数组中的字符串淡入/淡出标签

    func setOverlayTitle self overlayLogo text Welcome var hello String Bon Jour GUTEN nMORGEN BONJOUR HOLA BUENOS D AS BUON
  • 将类型传递给通用 Swift 扩展,或者理想情况下推断它

    说你有 class Fancy UIView 你想找到所有兄弟姐妹Fancy意见 没问题 https stackoverflow com q 37232743 294884 for v UIView in superview subview
  • 未知异常和崩溃

    当我尝试快速滚动表格视图或从远程重新加载数据时 我的应用程序崩溃了 当我先进行远程获取然后滚动表格视图时 一切似乎都工作正常 我不知道下面的崩溃日志意味着什么 它只是有时工作正常 有时崩溃 Incident Identifier 710A1
  • 在 iOS 上使用 RNCryptor 异步解密大文件

    我需要在 iOS 上使用 RNCryptor 异步解密一个大文件 以便显示进度条 我在任何地方都找不到示例 因此尝试了我猜对的方法 但是 我想出的方法不起作用 解密器的处理程序从未被调用 并且线程在发送所有数据后因 EXC BAD ADDR
  • GLKit的GLKMatrix“列专业”如何?

    前提A 当谈论线性存储器中的 列主 矩阵时 列被一个接一个地指定 使得存储器中的前 4 个条目对应于矩阵中的第一列 另一方面 行主 矩阵被理解为依次指定行 以便内存中的前 4 个条目指定矩阵的第一行 A GLKMatrix4看起来像这样 u
  • 防止 iOS 键盘在 cordova 3.5 中滚动页面

    我正在使用 Cordova 3 5 和 jQuery mobile 构建 iOS 应用程序 我在大部分应用程序中禁用了滚动功能 但是 当我选择输入字段时 iOS 键盘会打开并向上滚动页面 我不想要这个功能 由于输入足够高 键盘不会覆盖它 我
  • Mac 上的 Delphi - 可能吗? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我负责一个 Delphi Win32 项目管理应用程序 我刚刚完成了向 Delphi 2009 的迁移
  • 所有 RestKit 项目在归档时都无法构建

    这个问题涉及RESTKIT 0 9 x 如果您是 Restkit 新手 请考虑使用较新的版本0 10 x https github com RestKit RestKit tree v0 10 1 branch 我最近继承了一个项目 使用r
  • 使用强光混合模式时突出显示伪影

    我正在 iPhone 应用程序中使用顶部图像的 HardLight 混合模式混合两个图像 它看起来像这样 UIGraphicsBeginImageContext size sourceImage drawInRect rectangle b
  • Unwind segue 的用途是什么以及如何使用它们?

    iOS 6 和 Xcode 4 5 有一个称为 Unwind Segue 的新功能 展开转场可以允许过渡到故事板中场景的现有实例 除了 Xcode 4 5 发行说明中的 这个简短条目之外 UIViewController 现在似乎还有几个新

随机推荐

  • 安装 rpy2 时 Visual Studio cl.exe 错误

    我在 Django 中安装 rpy2 并收到以下错误 C Program Files x86 Microsoft Visual Studio 2017 Enterprise VC Tools MSVC 14 15 26726 bin Hos
  • Django 是否有立即 http 响应的异常?

    Django Tastypie 有ImmediateHttpResponse允许立即向客户端返回响应的异常 raise ImmediateHttpResponse response a message 姜戈有Http404 https do
  • 如何读取长度未知的输入字符串?

    如果我不知道这个词有多长 我就无法写char m 6 这个词的长度可能有十到二十长 我该如何使用scanf从键盘获取输入 include
  • Postgres 物化路径 - 使用 ltree 有什么好处?

    物化路径是一种在 SQL 中表示层次结构的方法 每个节点包含路径本身及其所有祖先 grandparent parent self The django treebeard实施MP docs https django treebeard re
  • 如何在 angularjs 单元测试中触发 keyup/keydown 事件?

    我想对模拟占位符的指令进行单元测试 其中输入值仅在 keyup down 事件上清除 您需要以编程方式创建一个事件并触发它 为此 使用 jQuery 进行单元测试是非常有用的 例如 您可以编写一个像这样的简单实用程序 var trigger
  • Drive Rest API V3 中的断点续传上传

    我正在尝试使用 Android 中的 Drive Rest API 创建可恢复上传会话 根据文档 需要遵循的 3 个步骤是 启动可恢复会话 保存可恢复会话 URI 上传文件 第 1 步 我使用以下代码来启动可恢复会话 File body n
  • 如何获取十六进制02的STX字符

    我有一个设备试图通过套接字连接 根据手册 我需要 十六进制 02 的 STX 字符 我如何使用 C 来做到这一点 只是对 GeoffM 的答案的评论 我没有足够的观点来以正确的方式发表评论 您绝对不应该仅使用两位数字来嵌入 STX 或其他字
  • windows 7下如何强制删除硬盘上的文件

    我有一个硬盘 但里面有一个坏文件 当我想删除文件时 窗口说 您指定的文件名无效或太长 指定不同的文件名 但文件没有重命名 我该怎么办 当正在运行的进程拥有资源句柄时 您无法修改该资源 解决方案是结束所有拥有您的资源句柄的进程 如下所示 1
  • Ant Design Collapse - 关闭按钮

    我是 Ant Design 的初学者 在使用 Ant Design 库中的 Collapse 和 Form 时遇到了这个问题 我已经设置了我的页面 其中添加新项目的表单位于折叠中 并且折叠下方有一个项目列表
  • 在ios中使用Google Plus进行图像共享

    我想在 google plus 上分享图片 我使用过 google api AppDelegate m GPPSignIn sharedInstance clientID MyClientID GPPDeepLink setDelegate
  • 重命名access vba中的字段

    我需要重命名 VBA 访问代码中的字段名称以实现自动化 以便运行得更快 我正在使用一个按钮来移动一些数据 因此需要更改列名称来清理数据 我正在使用表格 但我需要更改的表格根本没有链接到表格 我尝试使用一些 VBA 代码 但不断收到变量未定义
  • 需要在Windows Phone 7屏幕上显示大量文字

    我想要在屏幕上显示大约 800 KB 的文本 有人可以让我知道这个问题的可能解决方案吗 由于文本块的 2048X2048 限制 我已经尝试将文本拆分为多个文本块 并且也尝试过http blogs msdn com b priozersk a
  • 在 FFI 中使用 ptr::NonNull 是否有效?

    铁锈具有ptr NonNull https doc rust lang org beta std ptr struct NonNull html代表非的类型NULL指针 在 FFI 中使用这种类型安全吗 是否保证具有相同的二进制表示形式 忽
  • 捕获文件似乎在数据包中间被缩短 - 如何防止此错误?

    在我的应用程序中 我打开 Tshark 进程并开始捕获 当我想完成捕获时 我会终止 Tshark 进程 因此有时捕获文件已损坏 当我尝试打开此文件时 我收到错误捕获文件似乎在数据包中间被剪短 如何防止此错误有没有更好的方法来关闭 Tshar
  • 来自 .meta .info .data 的 Tensorflow 冻结推理图并组合冻结推理图

    我是张量流新手 目前正在努力解决一些问题 如何在没有管道配置的情况下从 meta data info 获取冻结推理图 我想实时检查预先训练的交通标志检测模型 模型包含 3 个文件 meta data info 但我找不到信息 如何在没有管道
  • 为什么在 Pandas 中使用 apply 时会出现额外的索引

    当我使用apply对于 Pandas 中的用户定义函数 看起来 python 正在创建一个附加数组 我怎样才能摆脱它呢 这是我的代码 def fnc group x group C values out x np where x lt 0
  • 带计数的 EF Core 左连接

    我在 MySql 数据库上有 3 个表 我想在这 3 个表之间进行左连接并使用 group by 进行计数 城市表 Id Name 学校桌 Id CityId Name 学生桌 Id SchoolId Name MySql raw quer
  • 如何在 Azure DevOps 中启用 Docker 层缓存

    我正在运行下面的 yaml 脚本来构建 docker 映像并推送到 kubernetes 集群 但同时我想在构建 yaml 脚本时在 azure DevOps 中启用 docker 层缓存 您能否解释一下如何启用或如何添加azure dev
  • 当数据更改时,ggvis 中的 linked_brush 无法在 Shiny 中工作

    我想创建一个闪亮的应用程序 它使用 ggvis 绘制交互式图形 并使用 linked brush 选择图形中的点 绘图数据根据输入而变化 但是当我尝试将所有内容放在一起时 我收到一条错误消息 Error Length of calculat
  • 使用 AVPlayer 的 MTAudioProcessingTap 和远程 URL 进行 AVFoundation 音频处理

    关于以下内容的文档很少AVA音频混合 http developer apple com library mac documentation AVFoundation Reference AVAudioMix Class Reference