mod*_*itt 5 iphone avfoundation ios swift
如何访问另一个应用程序当前正在播放的音频-实际的音频项目,但也欢迎使用元数据。我可以看到,这个问题已经问了很多,但多年来却很少提供解决方案。我了解苹果公司的理念,即可能不希望某个应用程序能够做到这一点。我也了解到,此类请求可能不在iOS API范围内。话虽如此,我真的很想要某种解决方案。
从逻辑上讲,我觉得
MPNowPlayingInfoCenter.defaultCenter().nowPlayingInfo
Run Code Online (Sandbox Code Playgroud)
应该返回当前正在播放的内容的信息;但是,正如其他人提到的那样,此值始终nil用于在应用程序外部播放音频。值得注意的是,流行的音频应用似乎无法使用MPNowPlayingInfoCenter类,从而使此类音频无法显示。
如果使用默认音乐应用,则可以使用
MPMusicPlayerController.systemMusicPlayer().nowPlayingItem
Run Code Online (Sandbox Code Playgroud)
但是,通过播客应用程序,Spotify,Pandora,Safari等访问音频播放的更一致的方法是什么?
有没有人找到解决方案?是否有任何旧的支持此功能的Objective-C框架?
如果有某种方法可以访问当前正在播放的项目的音频路径,则一种方法可能是可行的。例如,如果我可以获取当前播放项目的路径,则可以从中创建一个AV对象:
AVAudioPlayer(contentsOfURL: audioUrl)
Run Code Online (Sandbox Code Playgroud)
那么,有什么方法可以获取当前播放项目的音频URL并以这种方式使用它?
另一种方法更好吗?
如果不存在本机解决方案,是否可以将某些东西合并在一起使其起作用?欢迎任何建议或想法。
编辑:我不相信任何人都能做到这一点;但是,我想很多人都愿意。如果已解决,请链接!:)
目前这在 iOS 中是不可能的。只需将您的AVAudioSession类别选项更改为 . MixWithOthers,从其他应用程序获取信息歌曲信息的选项是什么,会导致您nowPlayingInfo被忽略。
iOS 仅考虑将非混合应用程序包含在 中MPNowPlayingInfoCenter,因为如果同时播放多个混合应用程序,则哪个应用程序将显示在(例如)控制中心中是不确定的。
建议:一种选择是使用音乐指纹算法通过从应用程序记录正在播放的内容来识别正在播放的内容。
这个方向的一些有趣的项目:
Gracenote https://developer.gracenote.com/ Gracenote(索尼旗下)已开放其 SDK 和 API,并拥有适当的开发门户。
EchoNest 和 Spotify API http://developer.echonest.com/自 2016 年 3 月起与 Spotify 融合
ACRCloud https://www.acrcloud.com/为电视广告、音乐技术等自定义文件提供 ACR 解决方案
| 归档时间: |
|
| 查看次数: |
1587 次 |
| 最近记录: |