職場では、サウンドを一時停止するために使用することはできません。alSourcePause()
いずれの場合も、オフセットを使用してサウンドを開始することをお勧めします。
alSourcei(this->sourceId, AL_SAMPLE_OFFSET, this->sampleOffset);
で取得したサンプルオフセットを使用して「再開」を実行していますalGetSourcei()
。AL_SEC_OFFSET
、、AL_BYTE_OFFSET
およびAL_SAMPLE_OFFSET
-を使用してみましたが、役に立ちませんでした。音源は「初期」状態である必要があることを読みました。ソースを再作成してバッファをアタッチしてからスキップしようとしても、役に立ちませんでした。
バッファをスキップするように変更すると、AL_BYTE_OFFSET
ループが複雑になるため、解決策にはなりません。
低速のマシンではストリーミングサウンドがスキップされます。マルチスレッド再生の実装に問題があります。
スケジュールが厳しいので、OS XのOpenALで単純な音源の一部をスキップする最良の方法は何ですか?
ソースコードは、Sourceforgeリポジトリで入手できます。