PlaySound直接播放本地音频文件,速度有点滞后,可以采用先将音频文件读取到内存中,然后在播放音频的时候直接从内存中读取音频数据进行播放,播放速度会有提示。
#include <iostream>
#include <algorithm>
#include <string>
#include <windows.h>
#include "Mmsystem.h"
#include <Digitalv.h>
#pragma comment(lib, "Winmm.lib")
using namespace std;
int main()
{
char* m_AlertMusicBuffer = nullptr;
FILE* alertMusicFile;
alertMusicFile = fopen(".//alert.wav", "rb");
if (alertMusicFile != nullptr)
{
fseek(alertMusicFile, 0, SEEK_END);
long fileSize = ftell(alertMusicFile);
rewind(alertMusicFile);
int num = fileSize / sizeof(char);
m_AlertMusicBuffer = (char*)malloc(sizeof(char)*num);
if (m_AlertMusicBuffer == NULL)
{
return 0;
}
fread(m_AlertMusicBuffer, sizeof(char), num, alertMusicFile);
}
PlaySound((LPCSTR)m_AlertMusicBuffer, NULL, SND_MEMORY | SND_LOOP | SND_ASYNC);
free(m_AlertMusicBuffer);
getchar();
return 0;
}
本文作者:StubbornHuang
版权声明:本文为站长原创文章,如果转载请注明原文链接!
原文标题:PlaySound 播放内存中的音频数据
原文链接:https://www.stubbornhuang.com/132/
发布于:2019年10月30日 23:34:20
修改于:2020年01月03日 0:39:20
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
评论
52