问题描述
是否可以检查AVAudio播放器的淡入状态(音量倾斜状态)?
显然,使用音量级别不是确定渐变是否已完成的方法,因为AVAudioPlayer.setVolume(_:fadeDuration :)方法立即将音量级别报告为setVolume方法传递的值。看来音量增加是在AVAudioPlayer内部完成的,我还没有找到一种观察方法。
以下游乐场代码演示了此问题:
import AVFoundation
let url = URL(fileURLWithPath: "/Users/Shared/Sample.mp3")
var player = AVAudioPlayer()
do {
player = try AVAudioPlayer(contentsOf: url)
} catch {
print("An error,\(error),occurred.")
}
player.volume = 0
player.play()
// Fade in the audio
player.setVolume(1,fadeDuration: 5)
print(player.volume) // Shows volume level 1 immediately
// Do something for about 10 seconds
sleep(10)
// Now fade out the audio
player.setVolume(0,fadeDuration: 5)
print(player.volume) // Shows 0 immediately
if player.volume == 0 { // Shouldn't execute if volume is being ramped by the setVolume method
player.stop() // Executes immediately
}
在出现AVAudioPlayer的淡入淡出状态(音量倾斜)时,是否可以通过某种方式进行观察?
我查看了Apple文档,并在此处和Google上进行了检查,以查看是否有人问过这个问题,但我的回答是零。
我不知道从哪里开始尝试为音量上升建立观察器。
此处的最终目标是做类似的事情:
var fading = player.fadeStatus
while fading {
fading = player.fadeStatus
}
player.stop()
谢谢!
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)