0

最初の質問です。間違っていたらごめんなさい :S. コンソール ウィンドウで作成したゲームのプレイ中にバックグラウンド オーディオ トラックをループさせようとしています。これはグループ プロジェクトの一部です。ゲームは問題なく動作しますが、PlaySound() 関数を使用してオーディオ トラックを再生することができません。これは、問題を把握するために作成したテスト プログラムです。

#include <iostream>
#include <windows.h>
#include <mmsystem.h>

using namespace std;

int main()
{

    PlaySound(TEXT("D:\\CodeBlocks:\\Programming Work:\\SoundTest:\\castor.wav"), NULL, SND_FILENAME|SND_ASYNC|SND_LOOP);
    if(PlaySound(TEXT("D:\\CodeBlocks:\\Programming Work:\\SoundTest:\\castor.wav"), NULL, SND_FILENAME|SND_ASYNC|SND_LOOP))
    {
        cout << "It's Working." << endl;
    }
    else
    {
        cout << "It's not working." << endl;
    }
    cout << "Hello world!" << endl;

    return 0;
}

私のテスト ケースは true (または "It's working.") を返します。学校のコンピューター ラボで試してみたところ、Windows の既定のエラー トーンがループしていました。ファイルパス全体を指定しました。ファイルが見つからない理由がわかりません。ファイルパスを書いた場所に実際にあることを4回確認しましたが、まだ見つからないようです。オーディオ ファイルに .mp3 と .wav の両方の形式を使用してみました。何が起こっているか知っている人はいますか?(注: このためには、リンカーに winmm ライブラリを指定する必要があります)

4

1 に答える 1

0

みんなありがとう、私は実際の問題を見つけました。それはずっとコードでさえありませんでした。私のオーディオ ファイル (castor.wav) は実際には、PlaySound() 関数で必要とされる wav 形式ではなかったことが判明しました。コンピューターは .wav であると通知していました (ファイルのプロパティを表示したときでさえ、それはwav形式であると言った)。

これは、.mp3 を .wav に変更するだけで .mp3 から変換しようとしたためです。実際の変換プログラムを使用した後 (正確なファイル パスを削除し、単純に TEXT("castor.wav") を指定した後) は魅力的に機能します。助けてくれてありがとう!

于 2016-06-28T05:24:33.947 に答える