作者热门文章
- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我正在我的 iOS 项目中制作一个音频播放器。我设置了 play(audiofUrl:URL, for times:Int)
方法,方法是传递 url 的名称和音频文件将播放的次数,如下所示:
func play(audioOfUrl:URL, for times:Int) {
let urlPath = audioOfUrl
loopsLeftOver = times
do {
let audio = try AVAudioPlayer.init(contentsOf: urlPath)
audioPlayer = audio
audio.play()
audio.numberOfLoops = times - 1
} catch let error {
print(error.localizedDescription)
}
}
还有 pause()
和 resume()
,我需要做的是跟踪音频播放器剩余的循环数。例如,如果我这样调用 play 方法:
play(audioOfUrl:audioUrl, for times:5)
我需要关注音频播放器运行时剩余的时间。
我尝试使用 AVAudioPlayerDelegate
方法,但它不起作用,如何关注 audio.numberOfLoops?提前致谢。
最佳答案
您可以订阅 AVPlayerItemDidPlayToEndTime 通知并计算此通知的处理程序已被调用的次数。
NotificationCenter.default.addObserver(self, selector:#selector(playerItemDidReachEnd(_:)),
name: NSNotification.Name.AVPlayerItemDidPlayToEndTime,
object: audioPlayer.currentItem)
关于ios - 如何跟踪 AVAudioFoundation 中的循环次数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44743288/
我正在编写一个将为背景音频初始化的类。 `class BackgroundAudio: NSObject,AVAudioPlayerDelegate { var audioPlayer:AVAudio
我正在我的 iOS 项目中制作一个音频播放器。我设置了 play(audiofUrl:URL, for times:Int) 方法,方法是传递 url 的名称和音频文件将播放的次数,如下所示: fun
当我尝试运行我的代码时,在上面的标题中的代码行上出现错误 audioPlayer =试试AVAudioPlayer(contentsOf:url) 在我将Xcode更新为Xcode 11之前,这段代码
我是一名优秀的程序员,十分优秀!