如何在UITableViewCell(Swift)中暂停AVPlayer?

时间:2015-08-03 00:44:40

标签: ios xcode swift avplayer

我在一张桌子上播放电台,并试图弄清楚如何在点击单元格时暂停电台。我可以让它发挥但不停顿。无论如何还要表明当前的小区正在播放。我想知道因为我无法在cellforindexpath函数之外访问我的自定义单元格。这是我的代码。

override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
    let myCell:BroadcastTableViewCell = tableView.dequeueReusableCellWithIdentifier("myCell", forIndexPath: indexPath) as! BroadcastTableViewCell

    // Configure the cell...
    myCell.broadcaster.text = broadcasters[indexPath.row]
    myCell.isBroadcasting.text = timePlayed[indexPath.row]
    return myCell
}

override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
   // self.performSegueWithIdentifier("toBroadcastView", sender: self)

    self.player = AVPlayer(URL: NSURL(string: stations[indexPath.row]))

    if selectedPath == indexPath.row{
        if status == 0{
            player.play()
            status += 1
        }else{
            player.pause()
            status -= 1
        }
    }else{
        status = 0
        player.play()
    }

    selectedPath = indexPath.row

}

1 个答案:

答案 0 :(得分:3)

AVPlayer的rate属性在未播放时为= 0.0,在播放时为< = 1.0。

如果您只想让一个广播电台同时播放,您可以在单个类中实例化AVPlayer,并根据正在播放的电台更改AVPlayerItem。通过这种方式,您将只有一个AVPlayer实例,而不是检查该自定义单元格是否正在播放,您可以检查AVPlayer本身是否正在播放。