質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
87.20%
C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

DXライブラリ

DXライブラリとは、DirectXを使ったWindowsソフトの開発に必ず付いて回るDirectXやWindows関連のプログラムを使い易くまとめた形で利用できるようにしたC++言語用のゲームライブラリです。

解決済

DxlibraryでのPlaySoundMemでの音の再生ができません。

kourinkabosu
kourinkabosu

総合スコア10

C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

DXライブラリ

DXライブラリとは、DirectXを使ったWindowsソフトの開発に必ず付いて回るDirectXやWindows関連のプログラムを使い易くまとめた形で利用できるようにしたC++言語用のゲームライブラリです。

1回答

0評価

0クリップ

1117閲覧

投稿2021/05/01 13:36

前提・実現したいこと

Dxlibraryで、ゲームを作っているのですが、
そのゲームのBGMとして曲をかけたいのですが、かかりません。
PlaySoundFile()では、動いてくれますが、PlaySoundMemで再生したいです。

発生している問題・エラーメッセージ

実行したときにエラーは出ませんが、音楽が流れません。

該当のソースコード

C

#include "DxLib.h" #include <string.h> #include <Windows.h> void DrawPos(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow); void DrawPic(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow, int x, int y, char*, bool); void DrawPic_k(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow, int x1, int y1, int x2, int y2, char*, bool); void DrawDialog(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow, int x, int y, const char*, char*, int Cr); //#define POS 1 int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { char BackGround[] = { "F:\Background\tanpopo.jpg" }; char NamePlate[] = { "F:\Background\name.png" }; char Name2[] = { "F:\Background\name2.png" }; char Mother[] = { "F:\Background\母.png" }; char yorunikakeru[] = { "E:\MUSIC\YOASOBI\THE BOOK\08 夜に駆ける.mp3" }; char gunjou[] = { "E:\MUSIC\YOASOBI\THE BOOK\06 群青.mp3" }; char kaikaikitan[] = { "kaikai.mp3" }; int Black = GetColor(255, 255, 255); //メモリへ読み込みサウンドハンドルを保存する。 int SHandle_yorunikakeru = LoadSoundMem(yorunikakeru); int SHandle_gunjou = LoadSoundMem(gunjou); int SHandle_kaikaikitan; SHandle_kaikaikitan= LoadSoundMem("kaikai.mp3"); SetGraphMode(1920, 1080, 32);//ディスプレイのモードを1920×1080にする。 SetTransColor(0, 0, 0);//白を透明にする。 if (DxLib_Init() == -1) { return -1; } SetMouseDispFlag(TRUE);//マウスのポインタを表示する。 DrawPic(hInstance, hPrevInstance, lpCmdLine, nCmdShow, 0, 0, BackGround, FALSE);//写真を表示。(x,y,BackGround,TRUE or FALSE) DrawPic_k(hInstance, hPrevInstance, lpCmdLine, nCmdShow, 1300, 400, 1652, 800, Mother, TRUE);//352*400 DrawPic_k(hInstance, hPrevInstance, lpCmdLine, nCmdShow, 0, 700, 1920, 1080, NamePlate, TRUE);//写真を表示(拡大縮小可能) //PlaySoundFile(kaikaikitan, DX_PLAYTYPE_BACK);//曲をかける。StopSoundFile();で止める。 PlaySoundMem(SHandle_kaikaikitan, DX_PLAYTYPE_BACK); SetFontSize(32); DrawString(30, 730, "主人公", Black); SetFontSize(16);//デフォルトに戻す。 DrawDialog(hInstance, hPrevInstance, lpCmdLine, nCmdShow, 30, 800, "主人公のセリフの表示", Name2, Black); #ifdef POS while (CheckHitKey(KEY_INPUT_RETURN) == 0)//エンターキーが押されるまで { DrawPos(hInstance, hPrevInstance, lpCmdLine, nCmdShow); } #endif ClearDrawScreen(); StopSoundFile(); WaitKey(); //サウンドハンドルの削除 DeleteSoundMem(SHandle_yorunikakeru); DeleteSoundMem(SHandle_gunjou); DeleteSoundMem(SHandle_kaikaikitan); DxLib_End(); return 0; }

試したこと

PlaySoundFile()では動きました。
サウンドハンドルを使うとできなくなります。

補足情報(FW/ツールのバージョンなど)

開発環境は、visual studio 2019 です。

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

まだ回答がついていません

会員登録して回答してみよう

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
87.20%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

DXライブラリ

DXライブラリとは、DirectXを使ったWindowsソフトの開発に必ず付いて回るDirectXやWindows関連のプログラムを使い易くまとめた形で利用できるようにしたC++言語用のゲームライブラリです。