再生元の現在の位置をオープンにどのように取得しますか?私は、あなたのバッファ、オープンアールのバッファ、ハードウェアバッファなどを通過した後、オーディオのどの位置がハードウェア上で現在再生されているのかと思います。openal:ソースの現在の再生位置を取得します
私はAPIを簡単に見てきましたAL_SAMPLE_OFFSET/AL_BYTE_OFFSET/AL_SEC_OFFSETが表しているものはあまりよく分かりません。私がストリーミングソースをプレイしている場合、私は絶えず増加する数字を得るようには思われません、それはおそらく私は現在の再生バッファ内の位置を取得しているようです? (またはすべてのバッファの?)
例えば、再生しながら、私はループと、このコードを実行します。
alGetSourcef(sources[0], AL_SAMPLE_OFFSET, &secoffset);
printf(" - %f samples\n", secoffset);
をして増加していないよう
- 0.000000 samples
- 8192.000000 samples
- 9216.000000 samples
- 5632.000000 samples
を取得します。
これは最新のxcode 4.3のmacos 10.7ですが、他のプラットフォームでも同じであるはずです。
更新:
私は、バッファサイズを大きくしようと、それが実際に現在再生中のバッファ内の現在位置のみのように見えるんしました:
- 0.000000 bytes
- 18432.000000 bytes
- 20480.000000 bytes
- 36864.000000 bytes
- 36864.000000 bytes
- 55296.000000 bytes
- 55296.000000 bytes
- 73728.000000 bytes
refilling buffer 2408
re-queued buffer 2408
- 16384.000000 bytes
- 34816.000000 bytes
- 34816.000000 bytes
- 51200.000000 bytes
- 51200.000000 bytes
- 69632.000000 bytes
refilling buffer 2409
re-queued buffer 2409
だから、まともながある、ことを考えます複数の異なるバッファを介してオープンな演劇としてのトラックを維持する方法?
ありがとうございました。私は後で(私はプログラミングガイドで十分だろうと思った)まで仕様を読んでいなかった。 –