首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

PlaySound播发音乐

2012-09-10 
PlaySound播放音乐今天测试了一下windows32的PlaySound函数,路径没错,运行也不报错,但是却听不到歌曲的声

PlaySound播放音乐

今天测试了一下windows32的PlaySound函数,路径没错,运行也不报错,但是却听不到歌曲的声音,运行的时候听到一声“咚”。加个循环的话就发出“咚咚咚”的响声,求帮忙,其中wav文件是由mp3文件修改后缀而成的,无论是绝对路径还是相对路径,都没有听到音乐的效果,还有一定,PlaySound()写的路径正确与否都不会报错,求帮忙?(论坛已求助,无人问津)代码如下:

#include<windows.h>#pragma   comment(lib,"winmm.lib")#include <mmsystem.h>LRESULT CALLBACK WindowProc1(  HWND hwnd,      // handle to window  UINT Msg,      // message identifier  WPARAM wParam,  // first message parameter  LPARAM lParam   // second message parameter);int WINAPI WinMain(  HINSTANCE hInstance,      // handle to current instance  HINSTANCE hPrevInstance,  // handle to previous instance  LPSTR lpCmdLine,          // command line  int nCmdShow              // show state  ){    static TCHAR szAppName[]=TEXT("HelloWin");    HWND hwnd;    MSG msg;    WNDCLASS wndclass;    wndclass.cbClsExtra=0;    wndclass.cbWndExtra=0;    wndclass.hbrBackground=(HBRUSH)GetStockObject(WHITE_BRUSH);    wndclass.hCursor=LoadCursor(NULL,IDC_ARROW);    wndclass.hIcon=LoadIcon(NULL,IDI_ERROR);    wndclass.hInstance=hInstance;    wndclass.lpfnWndProc= WindowProc1;    wndclass.lpszClassName=szAppName;    wndclass.lpszMenuName=NULL;    wndclass.style=CS_HREDRAW|CS_VREDRAW;    if(!RegisterClass(&wndclass)){        MessageBox(NULL,TEXT("This program requires Windows NT!"),szAppName,MB_ICONERROR);        return 0;    }    hwnd=CreateWindow(  szAppName,  // registered class name  TEXT("This is Hello Program"), // window name  WS_OVERLAPPEDWINDOW,        // window style  CW_USEDEFAULT,               // horizontal position of window  CW_USEDEFAULT,               // vertical position of window  CW_USEDEFAULT,           // window width  CW_USEDEFAULT,          // window height  NULL,     // handle to parent or owner window  NULL,        // menu handle or child identifier   hInstance,  // handle to application instance  NULL      // window-creation data);    ShowWindow(hwnd,nCmdShow);    UpdateWindow(hwnd);    while(GetMessage(&msg,NULL,0,0)){        TranslateMessage(&msg);        DispatchMessage(&msg);    }    return msg.wParam;}LRESULT CALLBACK WindowProc1(  HWND hwnd,      // handle to window  UINT Msg,      // message identifier  WPARAM wParam,  // first message parameter  LPARAM lParam   // second message parameter){    HDC hdc;    PAINTSTRUCT ps;    RECT rect;        switch(Msg){        case WM_CREATE:            PlaySound(TEXT("tingge.wav"),NULL,SND_FILENAME|SND_ASYNC);                        return 0;        case WM_PAINT:            hdc=BeginPaint(hwnd,&ps);            GetClientRect(hwnd,&rect);            DrawText(hdc,TEXT("Hello,Window98!"),-1,&rect,DT_CENTER|DT_SINGLELINE|DT_VCENTER);            EndPaint(hwnd,&ps);                        return 0;        case WM_DESTROY:            PostQuitMessage(0);            return 0;    }    return DefWindowProc(hwnd,Msg,wParam,lParam);}

留下你的脚印。。。

此问题完美解决了,wav格式不能直接由mp3格式修改后缀而得,用格式工厂或千千静听可以转成wav(wave)格式,这样就可以解决了。

热点排行