gpt4 book ai didi

ios - 是否可以使用 AVAudioEngine 播放 iOS 音乐库中的歌曲?

转载 作者:搜寻专家 更新时间:2023-10-31 22:43:17 26 4
gpt4 key购买 nike

我已经成功地创建了一个AVAudioEngine。它播放项目目录中的本地声音文件。但是我怎样才能访问手机上的音乐库?

有没有办法将 AVAudioEngineMPMediaPickerController 结合起来?

谢谢

最佳答案

是的:)

您需要在 MPMediaPickerController 上设置 MPMediaPickerControllerDelegate,这样当用户在 MPMediaPickerController 中执行操作时您会收到通知。 Here是您可以在 MPMediaPickerControllerDelegate 上使用的方法。

如您所见,有方法 mediaPicker(_:didPickMediaItems:)当用户选择要播放的歌曲时调用。这为您提供了一个 ( MPMediaItemCollection ),其中包含包含用户选择的歌曲的 items

您可以遍历该集合并查看类型为 MPMediaItem 的各个 .

最后,每个 MPMediaItem 都有一个 assetURL,您可以在 AVAudioEngine 中创建单独的节点。

所以...类似的东西:

在哪里创建 MPMediaPickerController

let mediaPicker = MPMediaPickerController(mediaTypes: .anyAudio)
mediaPicker.delegate = self
present(mediaPicker, animated: true, completion: nil)

委托(delegate)方法

public func mediaPicker(_ mediaPicker: MPMediaPickerController, didPickMediaItems mediaItemCollection: MPMediaItemCollection) {
for item in mediaItemCollection.items {
if let assetURL = item.assetURL {
//There you go :)
}
}
}

记得在完成时关闭 MPMediaPickerController(并且在取消时也记得这样做(也有一个委托(delegate)方法))。

希望这能为您指明正确的方向。

关于ios - 是否可以使用 AVAudioEngine 播放 iOS 音乐库中的歌曲?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42781836/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com