无法使用 MPMediaPickerController

Failing to use 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协议的mediaPickerDidCancel函数

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

我在尝试使用 MPMediaPickerController 的方式中遗漏了什么?

将这些添加到您的 plist:

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