当按下不同 UITableView 单元格中的另一个播放按钮时,如何自动停止当前播放的音频? - Swift

How to stop currently playing audio automatically when another play button in different UITableView cells are pressed? - Swift

我是 swift 初学者,目前正在开发我的第一个 iOS 应用程序。

我有一个 TableViewController,它有几个单元格,每个单元格都包含一个播放按钮。当按下几个播放按钮时,同时播放几个不同的音频,但我想在按下另一个播放按钮时停止当前正在播放的音频。

这是我创建的示例代码。

请多多指教。非常感谢!

问题是每个单元格都有自己独立的播放器。您只需要 一个 播放器,这样您就可以停止它并开始播放新的声音。例如,让一个玩家成为视图控制器的 属性。每个细胞都可以看到它,但只有一个。

AVPlayer 创建一个扩展,因为 AVPlayer 没有播放条件。下面给出了扩展名。

extension AVPlayer {
    var isPlaying: Bool {
        return rate != 0 && error == nil
    }
}

像这样点击播放时使用它。

if player?.isPlaying == true {
   player?.pause()
   player?.seek(to: CMTime(seconds: 0, preferredTimescale: 60))
}
//set up you audio file to player
player?.play()