mp3をプレイヤーでは再生できるのにmciでは再生できない場合の対処

メモとか久しぶりだ(笑


ゲーム試作版を友人にテストプレイしてもらったら、曲を再生できなかったのでその対処法をメモ。自分のパソコンも友人のパソコンもWindowsXP SP2だからOSの違いは関係ないっぽいですね。


mciは再生コーデックが入っている形式(普通にWMPなどで再生できる形式)はすべて再生できるのですが、OpenParamsで指定するDeviceTypeがレジストリに記述されていないといけないみたいです。mp3を再生するにはDeviceTypeをMPEGVideoとしますが、mp3はMPEGVideoに属するという記述が必要です。


曲をオープンするための記述

MCI_OPEN_PARMS OpenParams;
OpenParams.lpstrDeviceType = (LPCSTR)"MPEGVideo";
mciSendCommand(NULL,MCI_OPEN,MCI_OPEN_ELEMENT,(DWORD)&OpenParms);

Windows95/98の場合は

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\Current Version\MCI32

WindowsNTの場合は、

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\Current Version\MCI32

の中にいろいろな拡張子があるので、その中にmp3を追加してやればOKです。