AVAudioPlayer淡入淡出状态

问题描述

是否可以检查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 (将#修改为@)

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...