无法使用 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>
我第一次尝试在 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>