如何在 C++ Visual Studio 中添加声音

Posted

技术标签:

【中文标题】如何在 C++ Visual Studio 中添加声音【英文标题】:How to add sound in c++ visual studio 【发布时间】:2015-06-15 18:04:03 【问题描述】:

实际上我正在开发一个闹钟,我想在闹钟响起时播放声音(mp3 或 ogg 或 wav 文件从我的计算机。

class alarmclock //Alarm Clock Declaration

 protected:
int hour, min, sec, A_hour, A_min, A_sec, msec;
public:
char c, a;

void time(int ah, int am, int as)

    SYSTEMTIME time;
    GetLocalTime(&time); //Getting Time from Local Machine


        if (ah >= 0 && ah <= 23 && am >= 0 && am <= 60 && as >= 0 && as <= 60)
        
            hour = time.wHour;
            min = time.wMinute;
            sec = time.wSecond;
            A_hour = ah;
            A_min = am;
            A_sec = as;
            system("cls"); //Clear Screen
            for (int i = sec; sec <= 60; i++)
            
                Sleep(1000); //Delay of 1 Sec
                system("cls");
                logo();
                gotoxy(45,13);
                cout << "=> Alarm Time: " << A_hour << ":" << A_min << ":" << A_sec<<endl;
                gotoxy(45,14);
                cout << "=> Current Time: " << hour << ":" << min << ":" << sec;
                sec++;
                if (sec == 60)
                
                    min++;
                    if (min == 60)
                    
                        min = 0;
                        hour++;
                    
                    sec = 0;
                
                if (hour == 24)
                
                    hour = 0;
                
                if (A_hour == hour&&A_min == min&&A_sec == sec)
                
                    cout << "\nAlarm!";
                    printf("\a"); //with this code it only beeps once  but i want to play sound file for specific time 
                    break;
                

                if (_kbhit())
                
                    c = _getch();
                    cout << endl << endl;
                    if (c == 'e')
                    
                        break;
                    
                
            
        

    else
    
        cout << "Not Possible" << endl;
    

;

我想在闹钟响起时播放特定文件一段时间,就是这样。我将如何做到这一点,是否有任何 lib/头文件或内置函数可以做到这一点,或者我必须自己开发它?

【问题讨论】:

Sleep(1000) 会漂移。查看SetWaitableTimer 和WaitForSingleObject 【参考方案1】:

最简单的方法是使用PlaySound 函数(确保您与winmm.lib 链接)。

【讨论】:

如何链接 winmm.lib【参考方案2】:

以下示例播放声音文件: PlaySound(TEXT("recycle.wav"), NULL, SND_FILENAME);

【讨论】:

我已经添加了但是你想告诉我如何连接winmm.lib #pragma comment(lib, "winmm.lib")

以上是关于如何在 C++ Visual Studio 中添加声音的主要内容,如果未能解决你的问题,请参考以下文章

在 C++ 中添加多行注释时如何在 Visual Studio 2010 中启用自动星号?

visual studio 2008 c++ 中怎样添加动态链接库?

如何防止 Visual Studio 2010 在 C++ 中向我的项目添加大型 SQL 文件?

如何在 Visual Studio C++ 中使用文件夹?

如何在visual studio2015 中配置编写C,C++程序

如何使用visual studio 2017编写一个C++程序