在exe中添加wav

Posted

技术标签:

【中文标题】在exe中添加wav【英文标题】:Adding wav in exe 【发布时间】:2017-12-08 20:03:15 【问题描述】:

有没有什么方法可以将音乐添加到 exe(c++) 文件而不需要额外的波形文件?

例如,如果我使用“PlaySound”播放 wav 文件,则波形文件应位于 exe 文件所在的同一文件夹下。但是我想在没有wav文件的情况下运行它,这样当有人收到exe文件时,他们可以在没有收到wav文件的情况下听音乐..

我想要它作为代码...

这是我当前的代码。

#include <iostream>
#include <stdio.h>
#include <windows.h>
using namespace std;


/* ========================================================================== */
enum 
    BLACK,
    DARK_BLUE,
    DARK_GREEN,
    DARK_SKY_BLUE,
    DARK_RED,
    DARK_VOILET,
    DARK_YELLOW,
    GRAY,
    DARK_GRAY,
    BLUE,
    GREEN,
    SKY_BLUE,
    RED,
    VIOLET,
    YELLOW,
    WHITE,
;

enum  HIDDEN, SHOW ;

void CursorView(char show)

    HANDLE hConsole;
    CONSOLE_CURSOR_INFO ConsoleCursor;

    hConsole = GetStdHandle(STD_OUTPUT_HANDLE);

    ConsoleCursor.bVisible = show;
    ConsoleCursor.dwSize = 1;

    SetConsoleCursorInfo(hConsole, &ConsoleCursor);


void gotoxy(int x, int y)

    COORD XY =  x, y ;
    SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), XY);

void SetColor(int color)

    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), color);


void gamedraw(void)

        PlaySound(TEXT("10.wav"), NULL, SND_FILENAME | SND_LOOP | SND_ASYNC);

        printf("You are listening to my song.");

  getchar();

void MainInit(void)

   system("mode con: cols=100 lines=45");
   system("cls");


/* ========================================================================== */

int main(void)

   CursorView(HIDDEN);
   MainInit();

   gamedraw();

   for (;;) 

      if (GetAsyncKeyState(VK_ESCAPE) < 0)  break;
   

   CursorView(SHOW);

   return 0;

【问题讨论】:

供参考:PlaySound. 我知道如何使用“PlaySound”....但我想问的是...如何将exe文件和wav文件合并为1个exe文件...以便我可以同时运行控制台和 wav 文件,无需额外的窗口,如 windowmediaplayer。只是控制台。 该参考资料适用于任何可能试图帮助您的人。既不是常用函数,也不是标准函数。 ***.com/questions/20541707/…的可能重复 到目前为止我在参考中找不到这样做的方法...... 【参考方案1】:

您可以将 .wav 添加为资源,但播放它会变得相当困难(您必须将资源提取到磁盘上的某个路径或使用其中一个音频 API 来提交 wav 数据) .

【讨论】:

PlaySound()可以播放WAV资源,不需要先解压到临时文件,也不需要手动pump数据。请参阅 MSDN 上的 Playing WAVE Resources。

以上是关于在exe中添加wav的主要内容,如果未能解决你的问题,请参考以下文章

添加/叠加两个wav文件

如何在 asp.net mvc 项目中添加 .mp3 或 .wav 文件?

如何在 WAV 文件的前后添加静音

从资源中添加 .wav 文件(WPF C#)

如何在 iOS 中添加带有 PCM 数据/缓冲区的可播放(如 wav、wmv)标头?

如何在android中为wav文件添加回声效果?