当按下不同 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()
我是 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()