トップページ > 記事閲覧
電子オルガンの作成
名前:letis 日時: 2014/10/19 01:02

キーボード入力に従って音楽ファイルを再生、及び停止する電子オルガンのようなプログラムを作りたいのですが、 #include "DxLib.h" int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow ) { int SHandle1; int SHandle2; char Buf[256]; if (DxLib_Init() == -1) { return -1; } SHandle1 = LoadSoundMem("do.wav"); SHandle2 = LoadSoundMem("re.wav"); while(ProcessMessage() == 0 && Buf[KEY_INPUT_ESCAPE] == 0){ GetHitKeyStateAll(Buf); if (Buf[KEY_INPUT_A] == 1) PlaySoundMem(SHandle1,DX_PLAYTYPE_LOOP); else StopSoundMem(SHandle1); if (Buf[KEY_INPUT_S] == 1) PlaySoundMem(SHandle2,DX_PLAYTYPE_LOOP); else StopSoundMem(SHandle2); } DxLib_End(); return 0; } 試しに作ってみた上記のプログラムを実行すると、音はなるものの、ノイズが混ざった様になり、安定しません。 ファイルが再生中かどうか調べてから再生、停止を行うものも作ってみたのですが、改善しませんでした。 ご教示いただけますでしょうか。
メンテ

Page: 1 |

Re: 電子オルガンの作成 ( No.1 )
名前:管理人 日時:2014/10/19 16:40

> ファイルが再生中かどうか調べてから再生、停止を行うものも作ってみたのですが、改善しませんでした。 再生中かどうか調べてから再生、停止を行ってもノイズが混ざるとなると、 do.wav や re.wav などの音ファイル自体に問題がある可能性があります ただ、音ファイルに問題が無い場合は「キーを押した瞬間にのみ PlaySoundMem を実行する」ようにすれば 正常に再生できると思いますので、よろしければ載せて頂いたプログラムを「キーを押した瞬間にのみ PlaySoundMem を実行する」ように変更させていただいた以下のプログラムでも同様にノイズが混ざって しまうか試してみて頂けないでしょうか? #include "DxLib.h" #include <string.h> int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow ) { int SHandle1; int SHandle2; char Buf[256]; char BufPrev[256]; if (DxLib_Init() == -1) { return -1; } SHandle1 = LoadSoundMem("do.wav"); SHandle2 = LoadSoundMem("re.wav"); memset(Buf, 0, sizeof(Buf)); while(ProcessMessage() == 0 && Buf[KEY_INPUT_ESCAPE] == 0){ memcpy(BufPrev, Buf, sizeof(Buf)); GetHitKeyStateAll(Buf); if (Buf[KEY_INPUT_A] == 1 && BufPrev[KEY_INPUT_A] == 0) PlaySoundMem(SHandle1,DX_PLAYTYPE_LOOP); else if (Buf[KEY_INPUT_A] == 0) StopSoundMem(SHandle1); if (Buf[KEY_INPUT_S] == 1 && BufPrev[KEY_INPUT_S] == 0) PlaySoundMem(SHandle2,DX_PLAYTYPE_LOOP); else if( Buf[KEY_INPUT_S] == 0) StopSoundMem(SHandle2); } DxLib_End(); return 0; }
メンテ
Re: 電子オルガンの作成 ( No.2 )
名前:letis (解決) 日時:2014/10/21 17:21

ありがとうございました。 教えていただいたプログラムが思い通りに動きました。
メンテ

Page: 1 |

題名
名前
コメント
パスワード (記事メンテ時に使用)

   クッキー保存