バージョン

menu_open
Wwise SDK 2021.1.14
統合の詳細 - GetSourcePlayPosition

イントロダクション

特定のサウンドの現在の再生位置に関する情報をサウンドエンジンが必要とする場合があります。例えば、同期的にビデオおよびオーディオコンテンツのレンダリングをサポートするゲームでは、適切にゲームのビジュアルをレンダリングするために、サウンドの再生位置クエリが必要とされます。これが(口の動きとダイアログを同期させるためなど)フレームごとに実行されなければならない場合、マーカーより再生位置クエリのほうが有利です。再生位置クエリのもう1つの利点は、ソースファイルの編集が必要ないということです。AK::SoundEngine::GetSourcePlayPosition() メソッドは、イベントの最初のサウンド再生時に経過時間を返します。

注釈: マーカーは、小刻みのサウンド再生ではなくサウンドファイル内で発生している特定のイベントをシグナリングするのに有用です。

統合

ソースの再生位置をクエリするには、 AK_EnableGetSourcePlayPosition フラグを AK::SoundEngine::PostEvent() メソッドに渡す必要があります。これにより、AK::SoundEngine::GetSourcePlayPosition() がこの AkPlayingID のために常時呼び出される可能性があるため、このイベントに関連付けられているソースには特別な配慮が必要であることがサウンドエンジンに通知されます。

続いて、再生されているソースの現在の再生位置を取得するために、AK::SoundEngine::PostEvent() への呼び出しにより受け取った AkPlayingID を渡して、AK::SoundEngine::GetSourcePlayPosition() メソッドを呼び出すことができます。

以下のコードは、AK::SoundEngine::GetSourcePlayPosition() メソッドの使用法を示しています:

(...)
static AkPlayingID g_markersPlayingID = 0;
(...)
(...)
g_markersPlayingID = AK::SoundEngine::PostEvent( AK::EVENTS::PLAY_MARKERS_TEST, GAME_OBJECT_ID_MARKERS,
(...)
AkTimeMs uPosition = 0;
// Somewhere in your game loop (happens periodically):
AK::SoundEngine::GetSourcePlayPosition( g_markersPlayingID, &uPosition );
// Now handle lip synchronization by using uPosition

制限

参照
AkInt32 AkTimeMs
Time in ms
Definition: AkTypes.h:66
#define NULL
Definition: AkTypes.h:47
@ AK_EnableGetSourcePlayPosition
Enable play position information for use by AK::SoundEngine::GetSourcePlayPosition().
Definition: AkCallback.h:76
AKSOUNDENGINE_API AKRESULT GetSourcePlayPosition(AkPlayingID in_PlayingID, AkTimeMs *out_puPosition, bool in_bExtrapolate=true)
AKSOUNDENGINE_API AkPlayingID PostEvent(AkUniqueID in_eventID, AkGameObjectID in_gameObjectID, AkUInt32 in_uFlags=0, AkCallbackFunc in_pfnCallback=NULL, void *in_pCookie=NULL, AkUInt32 in_cExternals=0, AkExternalSourceInfo *in_pExternalSources=NULL, AkPlayingID in_PlayingID=AK_INVALID_PLAYING_ID)
AkUInt32 AkPlayingID
Playing ID
Definition: AkTypes.h:65

このページはお役に立ちましたか?

サポートは必要ですか?

ご質問や問題、ご不明点はございますか?お気軽にお問い合わせください。

サポートページをご確認ください

あなたのプロジェクトについて教えてください。ご不明な点はありませんか。

プロジェクトを登録していただくことで、ご利用開始のサポートをいたします。

Wwiseからはじめよう