2016-03-31 17 views
1

Sadece bir Swift 2.0 dersi aldım. IOS’un Müzik uygulaması kitaplığından bir şarkı seçip oynatmak için bir uygulama yapmaya çalışıyorum. Medya öğesi seçiciyi nasıl yapacağınızı gösteren bu link numaralı telefona rastladım.Bir şarkı seç ve Müzik uygulaması kitaplığından oyna - Swift 2.0

import UIKit 
import MediaPlayer 

class ViewController: UIViewController { 

@IBOutlet weak var pickSong: UIButton! 

override func viewDidLoad() { 
    super.viewDidLoad() 
    // Do any additional setup after loading the view, typically from a nib. 

    let mediaPicker = MPMediaPickerController(mediaTypes: .Music) 

    // mediaPicker.delegate = self 
    // mediaPicker.prompt = "Select song (Icloud songs must be downloaded to use)" 
    mediaPicker.allowsPickingMultipleItems = false 
    mediaPicker.showsCloudItems = false 
    presentViewController(mediaPicker, animated: true, completion: {}) 
} 

mediaPicker.delegate = self hat

yazmak için türü 'ViewController' değerini atanamıyor 'MPMediaPickerControllerDelegate?' Gösterir

hata mesajı. Bunu engellediğimde, uygulama çalışır ve şarkılara mükemmel şekilde göz atmamı sağlar.

Soru 1: Ben bu hattın kullanımı nedir öğrenmek istiyorum?

Soru 2: Bu kodu kullanarak aldığım şarkı nasıl çalınır?

Şarkıların çalınması için buraya ve diğer web sitelerine baktım. Kullanıcıların müzik çalmak için player.play() kullandığını buldum. Bunu denedim ve başarısız oldum. Kurulum viewController etmektir

func mediaPicker(mediaPicker: MPMediaPickerController, didPickMediaItems mediaItemCollection: MPMediaItemCollection) { 

    //User selected a/an item(s). 
    for mpMediaItem in mediaItemCollection.items { 
     print("Add \(mpMediaItem) to a playlist, prep the player, etc.") 
    } 
} 

func mediaPickerDidCancel(mediaPicker: MPMediaPickerController) { 
    print("User selected Cancel tell me what to do") 
} 

'mediaPicker.delegate = self' 

amacı: MPMediaPickerControllerDelegate uymak için bu yöntemleri ekleyin

//Let other classes know ViewController is a MPMediaPickerControllerDelegate 
class ViewController: UIViewController, MPMediaPickerControllerDelegate { 

    override func viewDidLoad() { 
    super.viewDidLoad() 
    // Do any additional setup after loading the view, typically from a nib. 

    let mediaPicker = MPMediaPickerController(mediaTypes: .Music) 
    mediaPicker.delegate = self 
    presentViewController(mediaPicker, animated: true, completion: {}) 
} 

:

+0

'MPMediaPickerControllerDelegate' yöntemine bakın. Bunu neden bir delege olarak ayarlamanız gerektiğini anlayacaksınız. Swift'de delegeyi nasıl kullanacağınızı görün ve Kakao'da (Touch) çok kullanılan tasarım desenini anlayın (Touch) – Larme

cevap

5

ViewController 'MPMediaPickerControllerDelegate' uyumlu olmasına ihtiyaç var Yukarıda eklenen fonksiyonlara cevap vermek. Temsilci ayarlamazsanız, mediaPicker hala görünecektir, ancak ViewController kullanıcınız bir işlem yaptığını bilmeyecektir. Bir temsilci ayarlamak zaman

, sınıf temsilci yöntemlerine uygun olduğundan emin olun. Yöntemleri bilmiyorsanız, söz konusu temsilci için Apple'ın Geliştirici dokümanlarını arayın (yani 'MPMediaPickerControllerDelegate' için arama yapın) ve ekleyebileceğiniz tüm delege yöntemlerini görürsünüz.

+0

Çok teşekkür ederim PJ G. Şimdi bir şarkı çalabiliyorum. Başka bir sorum daha var. Seçilen şarkıyı nasıl kaydederim, böylece Apple'ın alarm uygulaması ve telefon zil sesleri gibi bir dahaki sefere uygulamayı açarken oynatabilir miyim? Şimdiden teşekkürler :) –

+0

@jeyaganeshrajamanickam Yapabileceğiniz birkaç yol var. Genellikle kalıcı kimliği userDefaults'ta saklarım. Sonra lansmanında (ya da nerede mantıklıysa) MPQuery kullanıcının şarkıları ve eşleşen MPMediaItem'i bul. Kod örnekleri istiyorsanız, bir soru sorun ve cevaplayacağım. Umarım yardımcı olur. –

İlgili konular