【问题标题】:Add album artwork as subview in Swift在 Swift 中将专辑封面添加为子视图
【发布时间】:2015-07-25 00:39:52
【问题描述】:

我正在使用以下代码将正在播放的图稿添加为我的应用程序中的子视图。

override func viewDidLoad() {
    super.viewDidLoad()

    let artWork = musicPlayer.nowPlayingItem?.valueForProperty(MPMediaItemPropertyArtwork)

    let image = artWork?.imageWithSize(CGSizeMake(300, 300))

    let imageView = UIImageView(image: image)

    imageView.frame = CGRectMake(1, 1, 300, 300)
    self.view.addSubview(imageView)
}

不仅图像没有出现,我还在控制台中收到了这个警告:

moveCircleAround[2385:753430] BSXPCMessage received error for message: Connection interrupted

有 Swift 知识的人可以帮我解决这个问题吗?

【问题讨论】:

    标签: ios swift mpmediaitem


    【解决方案1】:

    您将无法继续使用 Xcode 7 测试版。与 MPMusicPlayerController 的所有交互目前在 iOS 9 测试版中被破坏。改用 Xcode 6.4 和 iOS 8.4,直到解决此问题。

    编辑 在 beta 5 中已修复,因此现在返回 Xcode 7 是安全的。

    【讨论】:

    • 嗨,马特,你有这方面的消息来源吗?
    • 为什么说与 MPMediaItems 的交互被破坏了?例如,我仍然可以访问musicPlayer.nowPlayingItem?.title。另外,artWork == nil = false.
    • 好吧,my 应用程序根本没有运行,我得到了 BSXPCMessage 的东西。其他人在论坛上对此进行了投诉。参见例如forums.developer.apple.com/thread/9414
    • 谢谢。希望下一个测试版能解决这个问题。
    • 从 iOS 9 beta 5 开始,我不再看到类似的问题了。
    【解决方案2】:

    此代码有几种情况无法获取艺术品图像:

    • musicPlayer 还没有nowPlayingItem
    • nowPlayingItem 没有艺术作品或尚未下载。
    • 艺术品找不到与您指定尺寸匹配的图像。

    尝试在函数顶部放置一个断点并单步执行该函数,看看哪个变量被设置为nil

    另外,请注意BSXPCMessage 错误可能暗示上述第二个问题是原因。也许尝试一首不同的歌曲,并首先检查它在您的音乐应用中是否有艺术作品。

    (请注意,您可以使用nowPlayingItem?.artwork 而不是nowPlayingItem?.valueForProperty(MPMediaItemPropertyArtwork) 来简化代码。)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-09-13
      • 2014-09-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多