2017-03-03 79 views
-6

我目前正在为iOS的音频流应用程序,我是新来的迅速。我能够拉动目前使用JSON序列从数据库中的歌曲,然后为每一个人创造的歌曲按钮和播放它们,但我无法弄清楚如何暂停呢?暂停JSON数组

这里是我的代码:

import UIKit 
import AVKit 
import AVFoundation 


class ViewController: UIViewController { 

    var songArray: [Array<String>] = [] //array to contain song names and filepaths 

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

     //connect to website 
     let url = URL(string:"http://cgi.soic.indiana.edu/~team22/SongData.php") 
     let task = URLSession.shared.dataTask(with: url!) { (data, response, error) in 
      if error != nil 
      { 
       print("error") 
      } 
      else 
      { 
       if let content = data 
       { 
        do 
        { 
         //download JSON data from php page, display data 
         let JSON = try JSONSerialization.jsonObject(with: content, options: JSONSerialization.ReadingOptions.mutableContainers) as! [[String]] 
         print(JSON) 

         //Make buttons with JSON array 
         var buttonY: CGFloat = 20 
         for song in JSON { 
          //add information to array 
          self.songArray.append(song) 
          let SongButton = UIButton(frame: CGRect(x: 50, y: buttonY, width: 250, height: 30)) 
          buttonY = buttonY + 50 // 50px spacing 

          SongButton.layer.cornerRadius = 10 //Edge formatting for buttons 

          SongButton.backgroundColor = UIColor.darkGray //Color for buttons 

          SongButton.setTitle("\(song[0])", for: UIControlState.normal) //button title 

          SongButton.titleLabel?.text = "\(song[0])" // set title label 

          SongButton.addTarget(self,action: #selector(self.songButtonPressed(_:)), for: UIControlEvents.touchUpInside) //button press/response 

          self.view.addSubview(SongButton) // adds buttons to view 
         } 
        } 
        catch 
        { 

        } 
       } 
      } 
     } 
     task.resume() 
     print(songArray) 

    } 


    func songButtonPressed(_ sender:UIButton!) { // Streaming function for buttons when pressed 
     for song in songArray { 
      if "\(song[0])" == sender.titleLabel?.text { //compare loop element to name of button pressed 



       let URL = NSURL(string: song[1]) //plug loop element into audio player 
       let player = AVPlayer(url: URL! as URL) 
       let playerLayer = AVPlayerLayer(player: player) 
       playerLayer.frame = self.view.bounds 
       self.view.layer.addSublayer(playerLayer) 
       player.play() 
      } 
     } 
    } 
} 
+6

这是没有任何关系的“暂停JSON数组”这是暂停一些媒体做 – Fogmeister

+0

谷歌“暂停音频迅速IOS”。 –

回答

0

去苹果文档和查找AVPlayer。有一个.pause()函数。就那么简单。你的另外一个问题是,你不必访问您songButtonPressed范围之外的该玩家的任何方式,所以你需要一个变量在你的viewController(即低于你var songArray...,这样当有人按下暂停按钮,你可以说self.player.pause()

链接到文档:https://developer.apple.com/reference/avfoundation/avplayer