OpenAL 从特定时间戳播放音频
Posted
技术标签:
【中文标题】OpenAL 从特定时间戳播放音频【英文标题】:OpenAL playing audio from certain timestamp 【发布时间】:2020-04-23 16:13:24 【问题描述】:我正在用 C++ 为我的游戏引擎编写一个对话系统。为了将对话组合在一起,我将不同的对话部分放在一个文件和一个缓冲区中。因此,我如何告诉 OpenAL 从特定时间播放缓冲区(或采样对我来说并不重要)到缓冲区中。提前感谢您的帮助!
【问题讨论】:
【参考方案1】:void PlayFromSpecifiedTime(ALfloat seconds) const
alSourcef(source, AL_SEC_OFFSET, seconds);
alSourcePlay(source);
或者,如果您想从缓冲区中的某个样本播放:
void PlayFromSpecifiedSample(ALint sample) const
alSourcei(source, AL_SAMPLE_OFFSET, sample);
alSourcePlay(source);
您还可以在开头添加一个检查,以查看您是否没有尝试跳到超出缓冲区总量的某个时间(或样本)。如果是这样,您只需return;
即可。这假设您知道自己在做什么。
【讨论】:
以上是关于OpenAL 从特定时间戳播放音频的主要内容,如果未能解决你的问题,请参考以下文章
IOS音频1:之采用四种方式播放音频文件AudioToolbox AVFoundation OpenAL AUDIO QUEUE