ios - 无法使用 MPMediaPickerController

标签 ios swift mpmediapickercontroller

我第一次尝试在 iOS 应用程序中使用 MPMediaPickerController

相关代码如下:

......
import MediaPlayer

class ViewController: UIViewController,...,MPMediaPickerControllerDelegate {
    ......
    var mediPic_VC:MPMediaPickerController!
    ......

    @objc func fireMediaPicker() {
        if mediPic_VC == nil {
            mediPic_VC = MPMediaPickerController(mediaTypes: .anyAudio)
            //mediPic_VC = MPMediaPickerController(mediaTypes: .music)
            mediPic_VC.delegate = self
        }

        self.present(mediPic_VC, animated: true, completion: nil)
    }

    ......

    // MPMediaPickerControllerDelegate protocol implementation.

    func mediaPicker(_ mediaPicker: MPMediaPickerController,
                     didPickMediaItems mediaItemCollection: MPMediaItemCollection) {
        print(#function)
    }


    func mediaPickerDidCancel(_ mediaPicker: MPMediaPickerController) {
        print(#function)
    }

    // End of MPMediaPickerControllerDelegate protocol implementation.

    ......
}

如您所见,我有一个函数 (fireMediaPicker) 可以调出 MPMediaPickerController

但是当我运行它时,应用程序只显示白屏并且调试控制台显示消息:

mediaPickerDidCancel(_:)

证明 MPMediaPickerControllerDelegate 协议(protocol)的函数 mediaPickerDidCancel 已被调用。

我期望看到的不是白屏,而是一个可供选择的音频项目列表。 此外,我不知道为什么调用 mediaPickerDidCancel

我在尝试使用 MPMediaPickerController 时错过了什么?

最佳答案

将这些添加到您的 plist 中:

<key>NSAppleMusicUsageDescription</key> 
<string>your own string</string>

关于ios - 无法使用 MPMediaPickerController,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57985351/

相关文章:

ios - 如何获取语言环境的完整显示名称

iOS:不在已编译的应用程序中包含 Storyboard 字符串

swift - 没有这样的模块 'Parse'

ios媒体选择器仅显示白屏/卡住

ios - 为什么我的指示器在加载网页 View 时不起作用?

iphone - 如何让 UIAlertView 再次调用自己?

ios - didActivate 没有被 CallKit 回调

facebook - swift NSValue.valueWithCGRect

ios - 很快,有没有办法让 UIView 类也成为 MPMediaPickerControllerDelegate?

ios - MPMediaPickerController 在 iPad 上缺少搜索功能