openAL get / set offset,以秒为单位

时间:2011-07-08 14:41:50

标签: iphone ios ipad audio openal

我使用OpenAL播放背景音乐。有一次,我需要获得赛道上的确切当前位置。我尝试使用alGetSourcef(_source, AL_SEC_OFFSET, &offset);,它在iOS 4上完美运行,但在iOS 3上它返回int(无小数位)。这是不够准确的,因为我需要至少3个小数位的精度(然后我使用此偏移信息跳转到轨道上的另一个点,并且向下舍入的值意味着它最终跳到不准确的位置)。

是否可以获取AL_SAMPLE_OFFSETAL_BYTE_OFFSET,然后将该值转换为秒?

声音文件:采样率为22050的16位PCM WAV。

1 个答案:

答案 0 :(得分:4)

采样率为每秒22050个样本,您需要做的就是将样本偏移量除以22050以获得时间。