在Windows中播放音频
C++ Play audio in Windows
我目前正在做一个项目,我需要播放一个声音文件(这实际上是一个视频,但我只想播放声音)。有人告诉我,我可以使用PlaySound功能,但它目前不工作(它播放这个声音,当我运行而不是我想要的文件https://dl.dropboxusercontent.com/u/45453297/Windows%20Background.wav)
int _tmain(int argc, _TCHAR* argv[])
{
PlaySound(TEXT("C:\Users\Ricardo\Documents\Visual Studio 2013\Projects\SomEVideo\SomEVideo\KinectAudio-02-23-32.wav"), NULL, SND_FILENAME);
return 0;
}
在stdafx.h中我包含了这些头文件:
#include "windows.h"
#include "mmsystem.h"
我还链接了winmm。
谢谢。编辑:
在被告知路径错误后,我将文件名更改为"。wav"并将其放在硬盘根目录中以避免输入错误。我还尝试了PlaySounDW,把它当作一种资源来播放。以下是我到目前为止没有成功的信息:
int _tmain(int argc, _TCHAR* argv[])
{
PlaySoundW(TEXT("C:/t.wav"), NULL, SND_FILENAME); //GetLastError returns 0
PlaySoundW(TEXT("C:\t.wav"), NULL, SND_FILENAME); //GetLastError returns 0
PlaySoundW(TEXT("t.wav"), NULL, SND_FILENAME); //GetLastError returns 0
PlaySound(TEXT("C:/t.wav"), NULL, SND_FILENAME); //GetLastError returns 0
PlaySound(TEXT("C:\t.wav"), NULL, SND_FILENAME); //GetLastError returns 0
PlaySound(TEXT("t.wav"), NULL, SND_FILENAME); //GetLastError returns 0
PlaySoundW(MAKEINTRESOURCE("C:/t.wav"), GetModuleHandle(NULL), SND_RESOURCE); //GetLastError returns 1813
PlaySoundW(MAKEINTRESOURCE("C:\t.wav"), GetModuleHandle(NULL), SND_RESOURCE); //GetLastError returns 1813
PlaySoundW(MAKEINTRESOURCE("t.wav"), GetModuleHandle(NULL), SND_RESOURCE); //GetLastError returns 1813
PlaySound(MAKEINTRESOURCE("C:/t.wav"), GetModuleHandle(NULL), SND_RESOURCE); //GetLastError returns 1813
PlaySound(MAKEINTRESOURCE("C:\t.wav"), GetModuleHandle(NULL), SND_RESOURCE); //GetLastError returns 1813
PlaySound(MAKEINTRESOURCE("t.wav"), GetModuleHandle(NULL), SND_RESOURCE); //GetLastError returns 1813
return 0;
}
From MSDN: "如果找不到文件,则该函数播放默认声音,除非设置了SND_NODEFAULT
标志。"
检查路径
这实际上是一个视频但是我只想播放声音
你不能这样。如果文件是视频(包括AVI),那么它就不是WAV文件,即使您更改了文件扩展名。PlaySound
只知道如何用WAVE块解码和播放RIFF类型的文件。
PlaySound可以播放WAV文件,其中样本用编解码器压缩。
您可以使用FFMPEG等工具从视频文件中提取音频段,并将其保存为独立的WAV文件。
另一个解决方案可能是使用一个更大的api (DirectShow或MediaFoundation)来播放视频文件,而不需要窗口来显示视频。这可能是大量的代码和工作集为您的需要。
相关文章:
- C++新手,想知道如何使用VS code 2019播放音频文件
- 如何以编程方式将音频从任何录制设备路由到任何播放设备
- 大声音频无法播放
- Qt C++ 创建方形音频音调波.播放并保存它
- C++从字节数组实时播放音频
- 无法在带有 gst-launch-1.0 的 Qemu 的 armv7 上播放 wav 音频
- 如何使用Microsoft::D irectX::AudioVideoPlayback 来播放音频
- 如何将 cdparanoia 读取的 CD 音频数据移交给 ALSA 播放器?
- 如何在Raspberry Pi上使用C /libao/alsa通过USB声卡播放音频
- QT 创建器:程序启动时音量滑块仍播放音频
- 如何播放AMR音频,QMediaPlayer不支持
- 使用音频设备播放WebRTC C++应用程序的音频流
- 是否可以使用带有random_shuffle的矢量随机播放音频文件
- 在 openGL 中播放音频而不冻结绘制循环
- 将超能力高级音频播放器同步到绝对位置
- Qt - 如何设置音频播放从缓冲区的开头开始
- Qt和音频播放
- 如何使用waveOutWrite()使音频播放流畅
- 如何获得Windows音频播放的当前采样率
- Qt声子音频播放器中的循环问题