我想代表来自HTMLMediaElement
的时间戳。其定义特征是:
Double
getCurrentTime :: IO Double
查询(部分应用于给定HTMLMediaElement
)我的初步计划是represent it as a Behavior t Double
that re-runs the IO Double
every time it is observed,但这并没有太好用。
我尝试过的事情:
Behavior
,如the workaround section of this question Event t ()
,并返回保存重合时间戳的Event t Double
我真的不喜欢 - 第一个将行为(对不起)与我的特定用例结合得太多(如果我使用最终的采样频率,我会在我的app)或者看起来很浪费(如果我在创建Behavior
时使用1 kHz采样之类的东西,然后在应用程序端以60 Hz的频率对其进行采样),如果你想做多于一个,那么第二种是非常不灵活的时间戳采用不同采样率的东西。
答案 0 :(得分:2)
现在,使用Event
明确地抽样时间(您的第二个选项)值是您最好的选择。我们尚未创建一种方法来编写Behavior
懒惰的外部资源调查,尽管这是我希望我们能够很快完成的事情。
请注意,使用您的第二个选项,您不一定需要使用特定的采样率;相反,您可以按需采样,甚至有多个位置进行采样。它并不完美,但我希望能让你完成工作!