在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的主要内容,如果未能解决你的问题,请参考以下文章
如何在 asp.net mvc 项目中添加 .mp3 或 .wav 文件?