iOS
MPMediaPickerDelegate
サーチ…
備考
プライバシーに関する詳細については、 Appleのドキュメントを参照してください。
あなたのiPhoneで音楽アプリが利用可能であることを確認してください。シミュレータでは動作しません。
MPMediaPickerControllerDelegateで音楽を読み込んでAVAudioPlayerで再生する
次の手順を実行します。
- あなたのInfo.plistに 'NSAppleMusicUsageDescription'を追加してプライバシー権を得てください。
- あなたの音楽があなたのiPhoneで利用可能であることを確認してください。シミュレータでは動作しません。
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
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow