当前位置: 首页 > news >正文

c++播放音频

在 Dev-C++ 中播放音频,可以使用一些简单的库来实现。由于 Dev-C++ 是一个较老的 IDE,推荐使用轻量级的库,比如 WinAPI 或 SFML。以下是两种方法的示例:

方法 1:使用 WinAPI 播放音频
WinAPI 是 Windows 平台的原生 API,可以直接调用 PlaySound 函数来播放音频文件。

示例代码

#include <windows.h>
#include <mmsystem.h>
#include <bits/stdc++.h>
using namespace std;

int main() {
    // 播放音频文件(支持 .wav 格式)
    if (PlaySound(TEXT("audio.wav"), NULL, SND_FILENAME | SND_ASYNC)) {
        cout << "Playing audio..." <<endl;
    } else {
        cerr << "Failed to play audio!" <<endl;
    }

    // 等待用户输入以结束程序
    cout << "Press Enter to exit..." <<endl;
    cin.get();

    // 停止播放
    PlaySound(NULL, NULL, 0);

    return 0;
}

配置步骤
        在 Dev-C++ 中创建一个新项目。

        将上述代码粘贴到 main.cpp 中。

        确保你的项目链接了 winmm.lib:

        打开项目选项(Project Options)。

        在 "Parameters" 选项卡下的 "Linker" 框中添加 -lwinmm。

        将音频文件(如 audio.wav)放在项目目录下。

        编译并运行程序。

方法 2:使用 SFML 播放音频
SFML 是一个跨平台的多媒体库,支持音频、图形、窗口管理等功能。虽然 Dev-C++ 不是官方推荐的 IDE,但仍然可以配置使用。

安装 SFML
        下载 SFML 的 Dev-C++ 兼容版本(推荐 SFML 2.5.x)。

        从 SFML 官网 下载。

        解压 SFML 到你的项目目录或系统目录。

        配置 Dev-C++:

        打开项目选项(Project Options)。

        在 "Parameters" 选项卡下的 "Linker" 框中添加以下库:

-lsfml-audio -lsfml-system

        

在 "Directories" 选项卡下的 "Include" 中添加 SFML 的 include 路径。

在 "Library" 中添加 SFML 的 lib 路径。

示例代码

#include <SFML/Audio.hpp>
#include <iostream>

int main() {
    // 加载音频文件
    sf::SoundBuffer buffer;
    if (!buffer.loadFromFile("audio.wav")) {
        std::cerr << "Failed to load audio file!" << std::endl;
        return -1;
    }

    // 创建声音对象并设置缓冲区
    sf::Sound sound;
    sound.setBuffer(buffer);

    // 播放音频
    sound.play();

    // 等待音频播放完毕
    while (sound.getStatus() == sf::Sound::Playing) {
        sf::sleep(sf::milliseconds(100));
    }

    return 0;
}

配置步骤
将上述代码粘贴到 main.cpp 中。

将音频文件(如 audio.wav)放在项目目录下。

确保 SFML 的 DLL 文件(如 sfml-audio-2.dll)与可执行文件在同一目录下。

编译并运行程序。

方法 3:使用系统命令(仅限 Windows)
如果你只需要快速播放音频,可以使用系统命令调用默认播放器。

示例代码

#include <cstdlib>
#include <iostream>

int main() {
    // 使用系统命令播放音频
    std::system("start audio.wav");

    std::cout << "Playing audio..." << std::endl;
    std::cout << "Press Enter to exit..." << std::endl;
    std::cin.get();

    return 0;
}

说明
这种方法依赖于系统的默认音频播放器。

确保音频文件路径正确。

总结
如果你需要简单的音频播放功能,推荐使用 WinAPI 的 PlaySound 函数。

如果你需要更复杂的音频控制(如音量、循环等),可以使用 SFML。

如果你只是临时测试,可以使用系统命令快速播放音频。

根据你的需求选择合适的方法!

相关文章:

  • top命令输出内容详解
  • 【设计模式】【创建型模式】建造者模式(Builder)
  • FreeRTOS-rust 编译分析
  • 【C++】实现一个JSON解析器
  • ubuntu上如何查看coredump文件默认保存在哪个路径?
  • 【ISO 14229-1:2023 UDS诊断(ECU复位0x11服务)测试用例CAPL代码全解析⑲】
  • Xilinx FPGA工程移植步骤---包含软核工程
  • LeetCode刷题---哈希表---215
  • Jedis 客户端 用于java连接redis服务
  • Vue3 打造 Windows 桌面个性高效组件工具
  • git clone
  • Java运算符
  • 【原创】Ubuntu 22安装nexus私服
  • LeetCode刷题---哈希表---451
  • Kubernetes Pod健康检查全解析:从Liveness到滚动更新,掌握容器健康管理的核心技巧
  • DeepSeek是什么?两种模型的对比?
  • 系统设计之分布式
  • C++编程语言:抽象机制:模板和层级结构(Bjarne Stroustrup)
  • 宏块划分的原理
  • LeetCode1299
  • 撤制镇如何突破困境?欢迎订阅《澎湃城市报告》第23期
  • 重庆荣昌区委区政府再设“答谢宴”,邀请800余名志愿者机关食堂用餐
  • “行人相撞案”现场视频公布,法院:表述不当造成误导
  • 宇数科技王兴兴:第一桶金来自上海,欢迎上海的年轻人加入
  • 人民日报钟声:平等对话是解决大国间问题的正确之道
  • 匈牙利外长称匈方已驱逐两名乌克兰外交官