MCIERR_INTERNALI は、アプリ内で単純なメディア プレーヤーを作成しようとしていますが、ファイルが 192kbps 以下の低ビットレートでない限り、私のコードは音楽を再生しないことに気付きました。問題は、私の音楽のほとんどが 260 ~ 320kbps 前後であることです。
これが私のコードです。「利用可能な」ビットレートオプションを上げるために何かできることがあれば教えてください。それ以外の場合は、新しい DLL の提案が必要です!
class MusicPlayer
{
[DllImport("winmm.dll")]
private static extern long mciSendString(string lpstrCommand, StringBuilder lpstrReturnString, int uReturnLength, int hwndCallback);
private static void checkMCIResult(long code)
{
int err = (int)(code & 0xffffffff);
if (err != 0)
{
throw new Exception(string.Format("MCI error {0}", err));
}
}
public void open(string file)
{
string command = "open \"" + file + "\" type MPEGVideo alias MyMp3";
checkMCIResult(mciSendString(command, null, 0, 0));
}
public void play()
{
string command = "play MyMp3";
mciSendString(command, null, 0, 0);
}
public void pause()
{
string command = "stop MyMp3";
mciSendString(command, null, 0, 0);
}
}
**編集: -Winform アプリケーション
- Windows 7 sp1 を使用
-Visual Studio 2013 コミュニティ エディションの使用
- エラー キャッチから、エラー番号が 289、-256 = 22: MCIERR_INTERNAL であることがわかりました。