2009-11-15 4 views
1

새로 지원되는 MP3 재생 기능인 SndPlaySync (SndPlayAsync 시도)를 사용하여 winows 모바일 응용 프로그램에서 mp3 파일을 재생하려고합니다. 가장 간단한 프로그램을 만들었고 방금 WM_KEYDOWN 이벤트에 함수를 첨부했습니다. (아래 첨부 된 코드). 그러나 거기에 항상 프로그램이 mp3를 재생 전에 0.5-2 초 대기 중입니다. 간단히 PlaySound를 사용하고 .wav 파일을 재생하려고 할 때, 그것은 정적으로 작동합니다. 내가 무엇을 할 수 있을지?Windows Mobile 6에서 느린 재생 SndPlaySync

코드 :

case WM_KEYDOWN: 
    PlaySound(c_szMid,NULL,NULL); 
    HSOUND hSound; 
    HRESULT hr; 
    SndOpen(c_szMid, &hSound); 
    hr = SndPlayAsync(hSound, 0); 
    hr = SndClose(hSound); 

너무 느리게 작동 그리고이 빠르게 작동합니다

case WM_KEYDOWN: 
    PlaySound(c_szMid,NULL,NULL); 

은 어떤 아이디어 감사하겠습니다!

감사합니다.

답변

1

wav가 아닌, 반면 mp3 파일이 압축되어 있음을 잊지 마십시오.

그래서 지연은 wav 파일 일 필요가 없다 그것을 메모리에 mp3 파일을 읽고 압축하는 데 걸리는 시간, 수 있습니다.

나는 이것을 어떻게 확인할 수 있을지 모르겠다.

0

해당 코드가 맞습니까? 지금 당신은 PlaySound (동기식)를 호출하고 비동기 버전을 호출합니다. 나에게 그 소리를 두 번 연주해야한다.

또한 PlaySound에 SND_ASYNC 플래그를 사용하려고하면 어떤 행동이 표시됩니까?

0

실제로 SndPlayAsync를 시도한 코드를 추가했지만 SndPlaySync와 동일한 코드가 추가되었습니다.

내가 실제로 문제를 좁혀 - 난 (동기화 플래그) 및 사용 SndPlaySync이 SndPlaySync 두 번 느린 실행 이는 PlaySound :(

내가 대한 새로운 질문을 열 수 있습니다 사용하여 wav 파일을 재생하려고해도 할 때 그것.

관련 문제