如何获取另一个应用程序当前正在播放的音频[重复]

2024-03-04

我如何访问另一个应用程序当前正在播放的音频 - 实际的音频项目,但也欢迎元数据。我可以看到这个问题已经被问了很多,但多年来提供的解决方案却很少。我理解苹果的理念probably不希望应用程序能够执行此操作。我也明白这样的要求是probablyiOS API 之外。话虽这么说,我真的很想要某种解决方案。

从逻辑上来说,我觉得

MPNowPlayingInfoCenter.defaultCenter().nowPlayingInfo 

应该返回当前正在播放的内容的信息;然而,正如其他人提到的,这个值总是nil用于在应用程序外部播放的音频。值得注意的是,流行的音频应用程序似乎无法使用 MPNowPlayingInfoCenter 类,从而导致此类音频无法出现。

如果使用默认音乐应用程序,可以使用

MPMusicPlayerController.systemMusicPlayer().nowPlayingItem

然而,通过播客应用程序、Spotify、Pandora、Safari 等访问音频播放的更一致的方式是什么?

有没有人找到解决这个问题的方法?是否有任何旧的 Objective-C 框架支持此功能?

如果有某种方法可以访问当前正在播放的项目的音频路径,则一种方法可能是可行的。例如,如果我可以获得当前播放项目的路径,我可以从中创建一个 AV 对象:

AVAudioPlayer(contentsOfURL: audioUrl)

那么有没有一种方法可以获取当前播放项目的音频 url 并以这种方式使用它?

另一种方法更好吗?

如果是本机解决方案不存在, 是否有可能bodge一起让它发挥作用吗?欢迎任何建议或想法。

编辑:我不相信有人能够实现这一目标;不过,我想很多人都愿意。如果这个问题已经解决,请链接! :)


目前这在 iOS 中是不可能的。只是改变你的AVAudioSession类别选项 .MixWithOthers,从其他应用程序获取信息歌曲信息的选项是什么,会导致您nowPlayingInfo被忽视。

iOS 只考虑将非混合应用程序包含在MPNowPlayingInfoCenter,因为如果同时播放多个混音应用程序,则不确定哪个应用程序会显示在(例如)控制中心中。

提议:一个选择是使用音乐指纹算法通过从您的应用程序录制来识别正在播放的内容。

这个方向的一些有趣的项目:

格蕾丝笔记 https://developer.gracenote.com/ https://developer.gracenote.com/Gracenote(索尼旗下)已开放其 SDK 和 API,并拥有适当的开发门户。

Echo Nest 和 Spotify API http://developer.echonest.com/ http://developer.echonest.com/自 2016 年 3 月起与 Spotify 融合

ACRCloud https://www.acrcloud.com/ https://www.acrcloud.com/为电视广告、音乐技术等自定义文件提供 ACR 解决方案

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

如何获取另一个应用程序当前正在播放的音频[重复] 的相关文章

  • 迭代 NSOrderedSet

    我正在尝试迭代 NSOrderedSet 的实例 像这样的事情 func myFunc var orderedSet NSOrderedSet array 42 43 44 for n in orderedSet NSLog i n 但是
  • 适用于 Objective-C / iPhone 的良好 HTTP 库? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 UPDATE 这个问题显然已经过时了 参见日期 我建议只使用现代 iOS7 功能 例如 NSURLSession 我想 这个问题是为了历史
  • 为什么我的 tableView 函数运行了 3 次?

    我有一个 UITableView 并且有执行它所需的方法之一 func tableView tableView UITableView numberOfRowsInSection section Int gt Int println sec
  • 线程 1:信号 SIGABRT - AppDelegate.h

    main m Journey Created by Julian Buscema on 2014 07 13 Copyright c 2014 Julian Buscema All rights reserved import
  • Swift 中具有透明背景的按钮边框

    我怎样才能做一个UIButton边框看起来像下图 入门 按钮一样具有透明背景吗 我应该如何使用情节提要来实现这一点 或者如何以编程方式实现这一点 设置backgroundColor to clearColor使按钮透明 例如尝试下面的代码
  • Objective C 如何将文本字段添加到导航栏中

    我正在尝试将文本字段添加到导航栏中 但它没有显示在模拟器中 我在 viewdidload 中按如下方式执行 UITextView textField UITextView alloc initWithFrame CGRectMake 0 0
  • iPhone 快照,包括键盘

    我正在寻找拍摄整个 iPhone 屏幕 包括键盘 的正确方法 我找到了一些截取屏幕的代码 CGRect screenCaptureRect UIScreen mainScreen bounds UIView viewWhereYouWant
  • PrepareForSegue之谜

    我在两个不同的 VC 中有一个prepareForSegue 方法 一个使用一个if声明 而另一个旨在使用switch 除了名称之外 代码几乎相同 这个效果很好 void prepareForSegue UIStoryboardSegue
  • iPhone Developer' 与任何有效的、未过期的证书/私钥对不匹配 - 但我正在创建 iPad 应用程序 [重复]

    这个问题在这里已经有答案了 可能的重复 代码签名错误 身份 iPhone Developer 与默认钥匙串中的任何有效证书 私钥对不匹配 https stackoverflow com questions 2108503 code sign
  • 重置转换后的 UIView 的原点会变得疯狂

    我使用 UIView transform 旋转 缩放 UIVIew 效果很好 然而 一旦我更改视图的框架原点 即使我没有执行任何进一步的 CGAffineTransforms 视图的内容也会开始 奇怪 地缩放 为什么会出现这种情况 我该如何
  • 将数字分解为单个数字的数组

    如果我有整数 123 并且我想将数字分解为数组 1 2 3 最好的方法是什么 我已经搞乱了很多 并且我有以下工作 var number 123 var digits Array String number map Int strtoul S
  • iPhone - 如何在矩形中间绘制文本

    有没有一种方法可以在矩形中间绘制文本 我可以找到各种对齐方式 但我尝试过的任何方法都不能将文本垂直居中在矩形中 有没有一种简单的方法可以做到这一点 或者有什么方法可以将矩形居中然后在其中绘制 我直接绘制到 CGContext 尝试使用 NS
  • iOS WKWebView.scrollView委托导致BAD_ACCESS

    我的 viewController 有一个 UIView 属性 其中包含一个 WKWebView 我将 WKWebView rollView 委托设置为我的 viewController 它是我的 UIView 子类的公共函数 并在我的 v
  • 我什么时候应该对 IBOutlet 使用弱或强限定符? [复制]

    这个问题在这里已经有答案了 可能的重复 ARC 下 IBOutlets 应该强还是弱 https stackoverflow com questions 7678469 should iboutlets be strong or weak
  • 如何更改已上传的 Firebase 存储图像文件名?

    我需要更改已上传到 firebase 存储中的文件名 因为 在 firebase 存储中上传图像后 我将 url 保存在 firebase 数据库中的特定子 文件夹 下 但是 当我将图像移动到另一个子 文件夹 时 我需要根据新名称更改存储中
  • 自定义 MKAnnotationView - 如何捕获触摸而不忽略标注?

    我有一个自定义 MKAnnotationView 子类 它完全按照我想要的方式显示视图 在那个视图中 我有一个按钮 我想捕获按钮上的事件来执行操作 这很好用 但是 我不希望标注被忽略或消失 基本上 触摸标注中的按钮将开始播放声音 但我想保留
  • 按下表格视图单元格时更改视图?

    我需要帮助 当我的 tableView 的单元格被选择时 我希望该单元格转到它自己的页面 我不希望每个单元格都转到同一页面 我尝试使用 FirstFolderViewController first FirstFolderViewContr
  • 我应该在哪个方法中设置 UITextField 的委托?

    在 viewDidLoad 或 init 方法中设置 UITextField 的委托是一个好习惯吗 我尝试在 init 方法中将委托设置为 self 但它没有调用相应的委托方法 当我将代码移动到 viewDidLoad 中时 它注册为将 s
  • 退出导航控制器

    我试图离开初始视图控制器 并进入空白视图控制器 这很好 但是这会使空白视图控制器也成为导航控制器的一部分 这不是我想要的 我想脱离视图控制器 在视图控制器中 我尝试退出 它会自行弹出 当我尝试视图中的方法时 将出现目标视图控制器 self
  • UINavigationController 在 UITabBarController 的 moreNavigationController 中不起作用

    我正在处理UINavigationControllers在我的应用程序中 全部由UITabBarController 一切工作正常 直到我的控制器落入自动生成的 更多 选项卡 我在简单的示例中重现了该问题 难道我做错了什么 我想不通 感谢您

随机推荐