0

私は最近、サウンド再生の精度が必須である集中的なサウンド管理クラスを取り入れようとしています。私が探しているのは、サウンドをロードし、再生開始位置(または再生ヘッド)を設定し、一定時間再生し、サウンドを一時停止し、「再生ヘッド」位置を新しい間隔に設定して、再生を再開するオプションです。(動的間隔で)。そのために AVAudioPlayer を使用してみましたが、遅すぎるようです。パフォーマンスはあなたが期待するものではありません. and を呼び出すpauseと遅れsetCurrentTime:ます.

これは最も使いやすく、指定された機能を持つ唯一のライブラリsetCurrentTime:です。

私はあなたの助けを求めてここに来ました.低レイテンシで間隔設定(再生ヘッドの動き)を処理できるまともなオープンソースSoundEngineの推奨、またはOpenALまたはAudioUnitツールが再生位置設定を処理できると述べられている場所への参照.

よろしくお願いします
〜ナタナヴラ。

4

1 に答える 1

1

SDK に付属している openAL プログラマー ガイドを確認してみる価値はあります。そのすべての種類のグッズを持っています !それから:

ソースの下: alGenSources によって生成された各ソースには、設定または取得できるプロパティがあります。関数の alSource[f, 3f, fv, i] および alGetSource[f, 3f, fv, i] ファミリを使用して、次のソース プロパティを設定または取得できます。 ...

AL_SEC_OFFSET f, fv, i, iv the playback position, expressed in seconds
AL_SAMPLE_OFFSET f, fv, i, iv the playback position, expressed in samples
AL_BYTE_OFFSET f, fv, i, iv the playback position, expressed in bytes

したがって、再生位置を秒単位で取得し、60 で割って正規化された時間を取得できます。

float pos = 0; alGetSourcef( sourceID, AL_SEC_OFFSET, &pos );
float normalizedPos = pos / 60.0f;

OpenALには、好きなようにサウンドを一時停止する機能があります。OpenAL は、遅延の少ないサウンド再生とオンデマンド再生を提供するため、ゲームでよく使用されます。サウンドをかなりコントロールできます。AVAudioPlayer クラスとの比較。これが役に立てば幸いです 返信してください

ピーク

于 2010-09-19T10:41:24.190 に答える