parent
70abbf9eff
commit
51b617f333
@ -0,0 +1,62 @@ |
||||
// |
||||
// MediaPickerView.swift |
||||
// LeCountdown |
||||
// |
||||
// Created by Laurent Morvillier on 20/04/2023. |
||||
// |
||||
|
||||
import SwiftUI |
||||
import MediaPlayer |
||||
import AVFoundation |
||||
import AVKit |
||||
|
||||
struct AppleMusicPickerView: UIViewControllerRepresentable { |
||||
|
||||
@Environment(\.presentationMode) var presentationMode |
||||
|
||||
var handler: (MPMediaItemCollection) -> () |
||||
|
||||
init(_ handler: @escaping (MPMediaItemCollection) -> Void) { |
||||
self.handler = handler |
||||
} |
||||
|
||||
class Coordinator: NSObject, UINavigationControllerDelegate, MPMediaPickerControllerDelegate { |
||||
|
||||
var parent: AppleMusicPickerView |
||||
|
||||
var handler: (MPMediaItemCollection) -> () |
||||
|
||||
init(_ parent: AppleMusicPickerView, handler: @escaping (MPMediaItemCollection) -> ()) { |
||||
self.parent = parent |
||||
self.handler = handler |
||||
} |
||||
|
||||
func mediaPicker(_ mediaPicker: MPMediaPickerController, didPickMediaItems mediaItemCollection: MPMediaItemCollection) { |
||||
|
||||
self.handler(mediaItemCollection) |
||||
|
||||
mediaPicker.dismiss(animated: true, completion: nil) |
||||
} |
||||
} |
||||
|
||||
func makeCoordinator() -> Coordinator { |
||||
Coordinator(self, handler: self.handler) |
||||
} |
||||
|
||||
func makeUIViewController(context: UIViewControllerRepresentableContext<AppleMusicPickerView>) -> MPMediaPickerController { |
||||
let picker = MPMediaPickerController(mediaTypes: .music) |
||||
picker.delegate = context.coordinator |
||||
picker.allowsPickingMultipleItems = true |
||||
return picker |
||||
} |
||||
|
||||
func updateUIViewController(_ uiViewController: MPMediaPickerController, context: UIViewControllerRepresentableContext<AppleMusicPickerView>) { |
||||
} |
||||
|
||||
} |
||||
|
||||
struct MediaPickerView_Previews: PreviewProvider { |
||||
static var previews: some View { |
||||
AppleMusicPickerView { _ in } |
||||
} |
||||
} |
||||
@ -0,0 +1,9 @@ |
||||
/* |
||||
InfoPlist.strings |
||||
LeCountdown |
||||
|
||||
Created by Laurent Morvillier on 13/03/2023. |
||||
|
||||
*/ |
||||
"CFBundleDisplayName" = "Enchant"; |
||||
"NSAppleMusicUsageDescription" = "Play music from your Apple Music library to enchant your activities"; |
||||
Loading…
Reference in new issue