iOS
MPMediaPickerDelegate
Recherche…
Remarques
Veuillez consulter la documentation Apple pour plus d'informations sur la confidentialité.
Assurez-vous que l'application Music est disponible sur votre iPhone. Cela ne fonctionnera pas dans le simulateur.
Charger de la musique avec MPMediaPickerControllerDelegate et jouer avec AVAudioPlayer
Passez par les étapes:
- Ajoutez 'NSAppleMusicUsageDescription' à votre Info.plist pour l'autorité de confidentialité.
- Assurez-vous que votre musique est disponible sur votre iPhone. Cela ne fonctionnera pas dans le simulateur.
iOS 10.0.1
import UIKit
import AVFoundation
import MediaPlayer
class ViewController: UIViewController, MPMediaPickerControllerDelegate {
var avMusicPlayer: AVAudioPlayer!
var mpMediapicker: MPMediaPickerController!
var mediaItems = [MPMediaItem]()
let currentIndex = 0
override func viewDidLoad() {
super.viewDidLoad()
}
func audioPlayerDidFinishPlaying(_ player: AVAudioPlayer, successfully flag: Bool){
//What to do?
}
func mediaPicker(_ mediaPicker: MPMediaPickerController, didPickMediaItems mediaItemCollection: MPMediaItemCollection) {
mediaItems = mediaItemCollection.items
updatePlayer()
self.dismiss(animated: true, completion: nil)
}
func updatePlayer(){
let item = mediaItems[currentIndex]
// DO-TRY-CATCH try to setup AVAudioPlayer with the path, if successful, sets up the AVMusicPlayer, and song values.
if let path: NSURL = item.assetURL as NSURL? {
do
{
avMusicPlayer = try AVAudioPlayer(contentsOf: path as URL)
avMusicPlayer.enableRate = true
avMusicPlayer.rate = 1.0
avMusicPlayer.numberOfLoops = 0
avMusicPlayer.currentTime = 0
}
catch
{
avMusicPlayer = nil
}
}
}
@IBAction func Play(_ sender: AnyObject) {
//AVMusicPlayer.deviceCurrentTime
avMusicPlayer.play()
}
@IBAction func Stop(_ sender: AnyObject) {
avMusicPlayer.stop()
}
@IBAction func picker(_ sender: AnyObject) {
mpMediapicker = MPMediaPickerController.self(mediaTypes:MPMediaType.music)
mpMediapicker.allowsPickingMultipleItems = false
mpMediapicker.delegate = self
self.present(mpMediapicker, animated: true, completion: nil)
}
}
Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow