Ios 8.4 MPMediaPickerController 不再显示有声读物

Posted

技术标签:

【中文标题】Ios 8.4 MPMediaPickerController 不再显示有声读物【英文标题】:Ios 8.4 MPMediaPickerController no longer displays AudioBooks 【发布时间】:2015-09-16 16:42:35 【问题描述】:

这个问题类似于关于 ios 8.4 播客的问题,我相信这可能是一个类似的问题,但会影响有声读物 - 因为有声读物在 8.4 中从音乐移至 iBooks,但它可能会有所不同。

在 iOS 8.4 之前,此代码允许我从手机中选择有声读物:

MPMediaPickerController *picker = [[MPMediaPickerController alloc] initWithMediaTypes: MPMediaTypeAudioBook];

注意,这似乎也会影响播客。

在 8.4 和现在的 9.0 中,相同的代码现在会拉出一个空白页面。此外,还可以通过以下方式导入有声读物:

MPMediaPickerController *picker = [[MPMediaPickerController alloc] initWithMediaTypes: MPMediaTypeAnyAudio];

但是,即使指定了 MPMediaTypeAnyAudio,也无法显示有声读物。我知道 Apple Music 是在 8.4 中发布的,而有声读物从核心音乐应用程序转移到了 iBooks 应用程序 - 所以我假设 Apple 完全重新设计了他们的 MPMediaPickerController。

不过,我在他们的变更日志中找不到任何关于此的内容。 MPMediaPickerController 的文档仍然指向一个媒体类型的枚举列表,其中明确包括有声读物 - https://developer.apple.com/library/ios/documentation/MediaPlayer/Reference/MPMediaItem_ClassReference/index.html#//apple_ref/c/tdef/MPMediaType

是否不再可以使用 MPMediaPickerController 从手机中选择有声读物?

苹果在不更新文档的情况下删除了访问它的能力似乎很奇怪,我只是做错了什么吗,是否需要设置新的选项?

【问题讨论】:

【参考方案1】:

是否不再可以使用 MPMediaPickerController 从手机中选择有声读物

是的,这已经不可能了。正如你所说的那样,从 iOS 8.4 开始,Apple 将有声读物的控制权转移到了 iBooks 应用程序。因此不再在音乐应用程序的范围内,因此它们不会出现在媒体选择器控制器中。

(这也破坏了我的应用程序。)

【讨论】:

很高兴能在苹果更改日志中看到一些内容来确认。但幸运的是 [MPMediaQuery audiobooksQuery] 仍然有效,而且创建自定义选择器并不太难。 “MPMediaQuery 有声读物查询” 更正-a-mundo。然而,这并不一定能解决你所有的问题;这取决于您的应用程序的功能。将有声读物从音乐播放器及其世界的范围中删除真的让我一团糟……

以上是关于Ios 8.4 MPMediaPickerController 不再显示有声读物的主要内容,如果未能解决你的问题,请参考以下文章

在 iOS 8.4 中裁剪 UIImage 并发症 [重复]

MPMoviePlayerViewController 不为 IOS 8.4 播放视频

CLLocationManager startMonitoringForRegion 在 ios 8.4 上崩溃

PKPaymentAuthorizationViewController 在 iOS 8.4 上意外崩溃

iOS 8.4 中的 Apple 支付按钮

SDK“iOS 8.4”不允许临时代码签名