gpt4 book ai didi

iphone - 如何从 iPod 应用程序播放音乐,同时仍在应用程序中接收远程控制事件?

转载 作者:行者123 更新时间:2023-12-03 18:32:10 28 4
gpt4 key购买 nike

好的,我试图让用户从 iPod 库中选择歌曲来收听,但我仍然希望在我的应用程序中接收远程控制通知(耳机、锁定屏幕 osd 等),以便我可以做一些事情额外的东西。到目前为止,我可以播放 iPod 音乐或耳机事件,但不能同时播放两者。

这是我目前所知道的...

  1. 如果您使用 MPMusicPlayer,您可以轻松地以编程方式访问整个音乐库。但是,无论您使用 applicationMusicPlayer 还是 ipodMusicPlayer,接收远程通知的都是它,而不是您的应用程序。

  2. 如果您使用 AVAudioPlayer(Apple 为您应用中的大多数声音推荐的播放器),您可以轻松获取远程通知,但它本身无法访问 iPod 库。

  3. AVAudioPlayer 可以使用资源 URL 进行初始化,并且 iPod 库中的轨道(MPMediaItem 类型)确实有一个 URL 属性,该属性返回一个 NSURL 实例,文档明确指出该实例与 AVAsset 对象一起使用,但是当您尝试使用该 NSURL 初始化 AVAudioPlayer,但失败。 (我在 iPod 中使用了“正在播放”的轨道,它是 MP3,它确实返回了一个有效的 NSURL 对象,但初始化失败。更糟糕的是,当它是一个 Audible.com 文件时,NSURL 属性直接返回 nil。)

  4. 如果您尝试使用 AVAudioPlayer 的实例来获取远程事件(例如,使用空白声音文件),然后同时使用 MPMusicPlayer 类来播放 iPod 音乐,则您可以进行远程控制访问,直到实际启动 iPod由于 Audio Session 被停用而系统 Audio Session 变为事件状态,因此您会丢失它的播放时间。

  5. 如果您尝试与#4 相同的方法,但将 Audio Session 的类别设置为可混合变体,则您的 session 不会停用,但一旦 iPod 开始播放,您仍然会失去远程控制功能。

简而言之,每当 MPMusicPlayer 播放时,我似乎无法获取远程事件,并且除了使用 MPMusicPlayer 之外,我不知道还有其他方法可以播放 iPod 库中的内容。

任何有关如何解决此问题的建议都将受到欢迎。有创意或疯狂。只要能用就不用在意。

有人吗?任何人?布勒?布勒?

中号

最佳答案

哈!解决了!我知道这是可能的! (感谢Async-games.com支持!)

以下是如何在您的应用程序中播放 iPod 音乐,并提供后台支持,并且您的应用程序接收远程控制通知。

您必须使用 AVPlayer(但不是 AVAudioPlayer。不知道为什么!)使用从库选择器(或 MPMusicPlayerController 中的当前项目或其他位置)获得的 MPMediaItem 的资源 URL 进行初始化,然后设置 Audio Session 的将类别设置为“可播放”(请勿启用混合覆盖,否则您将丢失远程事件!)并将适当的键添加到您的 info.plist 文件中,告诉操作系统您的应用程序想要支持背景音频。

完成了!

这使您可以在后台播放 iPod 库中的项目(由于某种原因,Audible.com 文件除外!),并且仍然可以获得远程事件。当然,由于这是您的音频播放器,它与 iPod 应用程序是分开的,并且会中断 iPod 应用程序,因此您必须做更多的工作,但这些就是中断!

该死的...我只是希望它能与 Audible.com 文件一起使用。 (对于那些感兴趣的人来说,它不这样做的原因是音频文件的 Assets URL 返回 nil。很糟糕!但是你能做什么!)

关于iphone - 如何从 iPod 应用程序播放音乐,同时仍在应用程序中接收远程控制事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3191580/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com