今天测试了一下windows32的PlaySound函数,路径没错,运行也不报错,但是却听不到歌曲的声音,运行的时候听到一声“咚”。加个循环的话就发出“咚咚咚”的响声,求帮忙,其中wav文件是由mp3文件修改后缀而成的,无论是绝对路径还是相对路径,都没有听到音乐的效果,还有一定,PlaySound()写的路径正确与否都不会报错,求帮忙?(论坛已求助,无人问津)代码如下:
#include<windows.h>
#pragma comment(lib,"winmm.lib")
#include <mmsystem.h>
LRESULT CALLBACK WindowProc1(
HWND hwnd, // handle to window
UINT Msg, // message identifier
WPARAM wParam, // first message parameter
LPARAM lParam // second message parameter
);
int WINAPI WinMain(
HINSTANCE hInstance, // handle to current instance
HINSTANCE hPrevInstance, // handle to previous instance
LPSTR lpCmdLine, // command line
int nCmdShow // show state
)
{
static TCHAR szAppName[]=TEXT("HelloWin");
HWND hwnd;
MSG msg;
WNDCLASS wndclass;
wndclass.cbClsExtra=0;
wndclass.cbWndExtra=0;
wndclass.hbrBackground=(HBRUSH)GetStockObject(WHITE_BRUSH);
wndclass.hCursor=LoadCursor(NULL,IDC_ARROW);
wndclass.hIcon=LoadIcon(NULL,IDI_ERROR);
wndclass.hInstance=hInstance;
wndclass.lpfnWndProc= WindowProc1;
wndclass.lpszClassName=szAppName;
wndclass.lpszMenuName=NULL;
wndclass.style=CS_HREDRAW|CS_VREDRAW;
if(!RegisterClass(&wndclass)){
MessageBox(NULL,TEXT("This program requires Windows NT!"),szAppName,MB_ICONERROR);
return 0;
}
hwnd=CreateWindow(
szAppName, // registered class name
TEXT("This is Hello Program"), // window name
WS_OVERLAPPEDWINDOW, // window style
CW_USEDEFAULT, // horizontal position of window
CW_USEDEFAULT, // vertical position of window
CW_USEDEFAULT, // window width
CW_USEDEFAULT, // window height
NULL, // handle to parent or owner window
NULL, // menu handle or child identifier
hInstance, // handle to application instance
NULL // window-creation data
);
ShowWindow(hwnd,nCmdShow);
UpdateWindow(hwnd);
while(GetMessage(&msg,NULL,0,0)){
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return msg.wParam;
}
LRESULT CALLBACK WindowProc1(
HWND hwnd, // handle to window
UINT Msg, // message identifier
WPARAM wParam, // first message parameter
LPARAM lParam // second message parameter
)
{
HDC hdc;
PAINTSTRUCT ps;
RECT rect;
switch(Msg){
case WM_CREATE:
PlaySound(TEXT("tingge.wav"),NULL,SND_FILENAME|SND_ASYNC);
return 0;
case WM_PAINT:
hdc=BeginPaint(hwnd,&ps);
GetClientRect(hwnd,&rect);
DrawText(hdc,TEXT("Hello,Window98!"),-1,&rect,DT_CENTER|DT_SINGLELINE|DT_VCENTER);
EndPaint(hwnd,&ps);
return 0;
case WM_DESTROY:
PostQuitMessage(0);
return 0;
}
return DefWindowProc(hwnd,Msg,wParam,lParam);
}
留下你的脚印。。。
此问题完美解决了,wav格式不能直接由mp3格式修改后缀而得,用格式工厂或千千静听可以转成wav(wave)格式,这样就可以解决了。
分享到:
相关推荐
本文档显示在vs2010中使用playsound函数播放音乐的方法
如何用PlaySound函数播放wav音乐VS2019!
不错的使用PlaySound播放WAV音乐文件的开发例子
PlaySound播放音效,封装声音处理工具
C语言win32小程序 编译环境为VC++ 简易的音乐贺卡 playsound播放wav格式的内嵌资源音乐 附源代码 可以直接编译运行 用的是vc6 不知道其他版本是否支持
1、使用playsound库 from playsound import playsound playsound('xx.mp3') 2、使用pygame库 from pygame import mixer import time mixer.init() mixer.music.load('xx.mp3') mixer.music.play() time....
自己写的闹钟,只可以播放wav格式的音频,供大家参考,具体内容如下 Python代码: import time import sys soundFile = 'sound.wav' not_executed = 1 def soundStart(): if sys.platform[:5] == 'linux': ...
本文实例总结了C#播放背景音乐的方法。分享给大家供大家参考。具体分析如下: 最经在写winform程序,其中有用到播放背景音乐 特此收集了一些网上的教程: 1、调用非托管的dll using System.Runtime.InteropServices...
Delphi 基于sndPlaySound函数播放音频文件,无调用windows内置的播放器组件,Delphi原生的音乐播放程序
这是我的音乐播放器的第一个版本,最有纪念意义,是我开发自己播放器的框架,其中很多都是自己最初的想法,用到最基本的PlaySound来播放,最适合新手的学习,希望对你有帮助!
C语言音乐贺卡win32程序 用到的主要函数为playsound()和mcisendstring()程序能播放自身带的WAVE格式的音乐,即嵌入程序的音乐,也能打开自己下载好了的任意格式音乐文件
这个版本的测试版本3.0 不再继续使用playsound,而使用mcisendstring来播放mp3,其他部分基本没变。(程序中可能有很多Bug,希望大家包涵,毕竟只是测试版,这些Bug在后面版本中都会得到修正)。
Audio2Minecraft是一款红石音乐转化器,能将midi转化为播放速率为20t/s的命令方块流。支持导入.mid、.wav、.lrc文件,并分别以playsound、scoreboard、tellraw/title的命令形式在Minecraft中输出。
说明网址:https://blog.csdn.net/BHSZZY/article/details/106194422...可播放txt格式的音乐文件,扒谱助手,写好简谱就能一键播放; 包含C源码与exe文件,免费资源,欢迎大家下载使用,欢迎大佬优化改进并反馈,谢谢!
XamarinAudioManager ... 以下示例显示了如何使用Xamarin Audio Manager设置背景音乐和播放效果声音。 await Audio . Manager . PlayBackgroundMusic ( " bgMusic.mp3 " ); await Audio . Manager . PlaySound ( " D
请使用装饰模式进行扩展,使得Process各Menu时,都循环播放背景音乐,离开菜单时,停止播放;同时显示主菜单时,显示如上图(Window下可使用PlaySound API函数,另由于LoadMenu类名与Windows中的LoadMenu API函数...