簡體   English   中英

從音樂應用程序庫中挑選歌曲並播放-Swift 2.0

[英]Picking a song and play from Music app library - Swift 2.0

我剛剛參加了基本的Swift 2.0課程。 我正在嘗試制作一個應用程序,以便從iOS的音樂應用程序庫中選擇一首歌曲並播放。 我碰到了這個鏈接 ,該鏈接顯示了如何制作媒體項目選擇器。

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顯示

無法將類型“ ViewController”的值分配給類型“ MPMediaPickerControllerDelegate?”

錯誤信息。 當我阻止它時,該應用程序可以運行,並且可以讓我完美地瀏覽歌曲。

問題1:我想知道此行的用途是什么?

問題2:如何播放使用此代碼挑選的歌曲?

我在這里和其他網站上搜索了如何播放歌曲。 我發現人們正在使用player.play()播放音樂。 我嘗試過但失敗了。

ViewController需要符合“ MPMediaPickerControllerDelegate”:

//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: {})
 }

添加以下方法以符合MPMediaPickerControllerDelegate:

 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' 

是設置ViewController來響應上面添加的功能。 如果不設置委托,mediaPicker仍然會出現,但是ViewController不會知道用戶已執行操作。

每當您設置委托時,請確保該類符合委托方法。 如果您不知道這些方法,請在Apple的Developer文檔中搜索該委托(即搜索“ MPMediaPickerControllerDelegate”),然后會看到可以添加的所有委托方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM