我第一次尝试在 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/