表示时间戳
Representing timestamps
我想表示来自 HTMLMediaElement
的时间戳。它的定义特征是:
- 它的值表示为
Double
- 可以随时使用
getCurrentTime :: IO Double
查询(部分应用于给定的 HTMLMediaElement
)
- 它可能会不断变化(每当播放媒体播放器时)
我最初的计划是 ,但效果并不理想。
我尝试过的事情:
- 使用在引擎盖下以固定频率刺激的
Behavior
,如 中所述
- 传递代表所需采样频率的
Event t ()
,并返回包含重合时间戳的 Event t Double
我不太喜欢 - 第一个要么将 行为(抱歉)与我的特定用例结合得太多(如果我使用最终的采样频率我将在我的应用程序中使用)或看起来很浪费(如果我在创建 Behavior
时使用类似 1 kHz 的采样,然后在应用程序端以 60 Hz 采样),如果你想要,第二个是非常不灵活的在不同的采样率下用时间戳做不止一件事。
现在,使用 Event
明确采样时间(您的第二个选项)值是您最好的选择。我们还没有创建一种方法来编写 Behavior
s 来延迟轮询外部资源,尽管我希望我们能够尽快完成。
请记住,对于第二个选项,您不一定需要使用特定的采样率;相反,您可以按需采样,甚至可以在多个位置进行采样。它并不完美,但我希望它能让你完成工作!
我想表示来自 HTMLMediaElement
的时间戳。它的定义特征是:
- 它的值表示为
Double
- 可以随时使用
getCurrentTime :: IO Double
查询(部分应用于给定的HTMLMediaElement
) - 它可能会不断变化(每当播放媒体播放器时)
我最初的计划是
我尝试过的事情:
- 使用在引擎盖下以固定频率刺激的
Behavior
,如 中所述
- 传递代表所需采样频率的
Event t ()
,并返回包含重合时间戳的Event t Double
我不太喜欢 - 第一个要么将 行为(抱歉)与我的特定用例结合得太多(如果我使用最终的采样频率我将在我的应用程序中使用)或看起来很浪费(如果我在创建 Behavior
时使用类似 1 kHz 的采样,然后在应用程序端以 60 Hz 采样),如果你想要,第二个是非常不灵活的在不同的采样率下用时间戳做不止一件事。
现在,使用 Event
明确采样时间(您的第二个选项)值是您最好的选择。我们还没有创建一种方法来编写 Behavior
s 来延迟轮询外部资源,尽管我希望我们能够尽快完成。
请记住,对于第二个选项,您不一定需要使用特定的采样率;相反,您可以按需采样,甚至可以在多个位置进行采样。它并不完美,但我希望它能让你完成工作!