human-osaka-game-2019 / SoundLib

C/C++WIndowsゲーム用音声再生ライブラリ
3 stars 1 forks source link

同一サウンドの多重再生 #1

Closed masami-sugao closed 6 years ago

masami-sugao commented 6 years ago

同一サウンドの多重再生を可能にする。   SEなどでは同時に同じ動作が発生すると同じサウンドを重ねて再生することが必要となるため。

masami-sugao commented 6 years ago

WAV、ffmpegは元の状態で対応可能。   ただし、同じファイルに別のキーを付けて複数回SoundsManager::AddFile()を実行する必要はある。

mp3は同じファイルに対して複数回SoundsManager::AddFile()を実行すると、2回目以降はファイルを開くタイミングでエラーとなっていた。  

HANDLE CreateFile(
    LPCTSTR lpFileName,                         // ファイル名
    DWORD dwDesiredAccess,                      // アクセスモード
    DWORD dwShareMode,                          // 共有モード
    LPSECURITY_ATTRIBUTES lpSecurityAttributes, // セキュリティ記述子
    DWORD dwCreationDisposition,                // 作成方法
    DWORD dwFlagsAndAttributes,                 // ファイル属性
    HANDLE hTemplateFile                        // テンプレートファイルのハンドル
);

の第3引数にFILE_SHARE_READを指定することにより、共有読取でファイルを開くことになり、複数回同じファイルを開いてもエラーが発生しなくなった。

masami-sugao commented 6 years ago

v1.3でリリース