2016-06-26 6 views
0

첫 번째 질문, 내가 옳은 일을하지 않으면 죄송합니다. 콘솔 창에서 생성 된 게임이 재생되는 동안 백그라운드 오디오 트랙을 반복하려고합니다. 이것은 그룹 프로젝트의 일부입니다. 게임은 정상적으로 실행되지만 PlaySound() 함수를 사용하여 오디오 트랙을 재생할 수는 없습니다. 이것은 문제를 파악하기 위해 만든 테스트 프로그램입니다.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를 돌려, 나는 학교 컴퓨터 실에서 그것을 시도 할 때, 그것은 루프 기능을 찾을 수 없을 때 재생되는 기본 Windows 오류 톤을, 것 지정한 파일, 전체 파일 경로를 지정 했음에도 불구하고. 파일을 찾을 수없는 이유를 알아낼 수 없습니다. 파일 경로를 작성한 위치에 실제로 4 배가 있는지 확인했는데 여전히 찾을 수없는 것 같습니다. 오디오 파일에 .mp3 및 .wav 형식을 모두 사용하여 시도했습니다. 누구가 무슨 일이 일어 났는지 알아? 이 같은 경로 스타일을 사용하는

+2

각 폴더 뒤에 콜론을 넣으면 안됩니다. , e,'D : \\ CodeBlocks \\ 프로그래밍 작업 \\ SoundTest \\ castor.wav' – Rakete1111

답변

-1

시도를 (주 링커는이를 위해 winmm 라이브러리를 제공 할 필요) :이 당신의 경로에 대한 모든이 같은

"D:/CodeBlocks:/Programming Work:/SoundTest:/castor.wav"

를 사용하여 작동합니다.

+0

아무런 이유없이 슬래시로 변경하여 새로운 문제 (또는 적어도 비 관용적 인) 구문을 도입했습니다. 불필요한 콜론 인 _actual_ 문제를 해결하지 못합니다. –

0

실제로 문제가 발견되었습니다. 코드가 전부는 아닙니다. 내 오디오 파일 (castor.wav)은 wav 형식이 아니며, 컴퓨터에서 .wav라고 알려주고 있지만 PlaySound() 함수에서 필요합니다. (파일의 속성을 표시 했더라도 그것이 wav 형식으로 말했다).

이것은 단순히 .mp3을 .wav로 변경하여 .mp3에서 변환하려고 시도했기 때문에 더 잘 알려야합니다. 실제 변환 프로그램을 사용하고 정확한 파일 경로를 제거한 후 단순히 TEXT ("castor.wav")로 지정하면 효과가 있습니다. 도움을 청합니다!

관련 문제