gpt4 book ai didi

ios - 协调 CACurrentMediaTime() 和 deviceCurrentTime

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:21:21 35 4
gpt4 key购买 nike

我正在尝试将多个 CABasicAnimationsAVAudioPlayer 同步。我遇到的问题是 CABasicAnimation 在安排动画时使用 CACurrentMediaTime() 作为引用点,而 AVAudioPlayer 使用 deviceCurrentTime .同样对于动画,使用 CFTimeInterval,而对于声音,它使用 NSTimeInterval(不确定它们是否像其他 CF 和 NS 类型一样“免费桥接”)。我发现引用点也不同。

有没有办法确保声音和动画使用相同的引用点?

最佳答案

我不知道“官方”答案,但它们都是 double float ,从某个引用时间开始测量秒数。

从文档中,听起来 deviceCurrentTime 链接到当前 Audio Session :

The time value, in seconds, of the audio output device. (read-only)

@property(readonly) NSTimeInterval deviceCurrentTime Discussion The value of this property increases monotonically while an audio player is playing or paused.

If more than one audio player is connected to the audio output device, device time continues incrementing as long as at least one of the players is playing or paused.

If the audio output device has no connected audio players that are either playing or paused, device time reverts to 0.

您应该能够启动音频输出 session ,调用 CACurrentMediaTime(),然后在 2 个连续语句中获取 Audio Session 的 deviceCurrentTime,然后计算偏移常量以在它们之间进行转换。该偏移量将在几纳秒内准确。偏移量仅在音频输出 session 处于事件状态时才有效。每次从 Audio Session 中删除所有音频播放器时,您都必须重新计算它。

关于ios - 协调 CACurrentMediaTime() 和 deviceCurrentTime,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11198893/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com