怎样在单文档应用程序加入背景音乐啊??急!!

dragon8250 2003-10-17 05:57:02
怎样在单文档应用程序加入背景音乐啊??
...全文
278 21 打赏 收藏 转发到动态 举报
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
dragon8250 2003-10-23
  • 打赏
  • 举报
回复
yzkzero(Skall You):
你是在哪加的啊!
我是在BOOL CTestDialogApp::InitInstance()
客户区初始化的时候加的!运行是没有错,可是“当”一下后就没声音了!
tks!!
yzkzero 2003-10-23
  • 打赏
  • 举报
回复
InitInstance()里加也可以

我是加在SetRegistryKey(_T("应用程序向导生成的本地应用程序"));后面
yzkzero 2003-10-23
  • 打赏
  • 举报
回复
OnInitDialog()里加的

yzkzero 2003-10-21
  • 打赏
  • 举报
回复
如果要重复的话:

PlaySound(_T("G:\\TLJ\\GETDOWN.WAV"),NULL,SND_ASYNC|SND_LOOP);
yzkzero 2003-10-21
  • 打赏
  • 举报
回复
我可以的,代码如下:


加入Winmm.lib
#include <Mmsystem.h>

PlaySound(_T("G:\\TLJ\\GETDOWN.WAV"),NULL,SND_FILENAME);
pudding205 2003-10-21
  • 打赏
  • 举报
回复
我也是新手,我也碰到这个问题,老调试不出,呵呵
哥哥姐姐们,救急啊~~~~~~~~~~
dragon8250 2003-10-21
  • 打赏
  • 举报
回复
各位帮忙啊!!
8412230 2003-10-19
  • 打赏
  • 举报
回复
gz 学习中
dragon8250 2003-10-19
  • 打赏
  • 举报
回复
各位多指点,tks!!
dragon8250 2003-10-18
  • 打赏
  • 举报
回复
我以c:\1.wav为例
用:
PlaySound(PSTR,HMODULE,DWORD);
PlaySound("c:\\1.wav",NULL,SND_FILENAME|SND_ASYNC);
也添加了winmm.lib
头文件加的windows.h
还是出错了!我在初始化和view类里分别添加了以上代码,都有错!应该在什么地方加啊?
报错如下:
F:\object\TestDialog\TestDialogView.cpp(62) : error C2065: 'PlaySound' : undeclared identifier
F:\object\TestDialog\TestDialogView.cpp(62) : error C2275: 'PSTR' : illegal use of this type as an expression
c:\program files\microsoft visual studio\vc98\include\winnt.h(166) : see declaration of 'PSTR'
F:\object\TestDialog\TestDialogView.cpp(62) : error C2275: 'HMODULE' : illegal use of this type as an expression
c:\program files\microsoft visual studio\vc98\include\windef.h(253) : see declaration of 'HMODULE'
F:\object\TestDialog\TestDialogView.cpp(62) : error C2275: 'DWORD' : illegal use of this type as an expression
c:\program files\microsoft visual studio\vc98\include\windef.h(141) : see declaration of 'DWORD'
F:\object\TestDialog\TestDialogView.cpp(63) : error C2065: 'SND_FILENAME' : undeclared identifier
F:\object\TestDialog\TestDialogView.cpp(63) : error C2065: 'SND_ASYNC' : undeclared identifier
Error executing cl.exe.
Creating browse info file...

TestDialog.exe - 6 error(s), 0 warning(s)
新手上路,麻烦了!!
wizlian 2003-10-17
  • 打赏
  • 举报
回复
#include <windows.h>
//#include <windowsx.h>

LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);


int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR nCmdLine,int nShowCmd){
HWND hwnd;
WNDCLASSEX wndclass;
MSG msg;
const TCHAR clsName[]=TEXT("HelloWin");
const TCHAR helloError[]=TEXT("HelloWinError");

wndclass.cbSize=sizeof(WNDCLASSEX);
wndclass.style=CS_HREDRAW|CS_VREDRAW|CS_DBLCLKS;
wndclass.lpfnWndProc=WndProc;
wndclass.cbClsExtra=0;
wndclass.cbWndExtra=0;
wndclass.hInstance=hInstance;
wndclass.hIcon=LoadIcon(hInstance,IDI_APPLICATION);
wndclass.hCursor=LoadCursor(NULL,IDC_ARROW);
wndclass.hbrBackground=(HBRUSH)COLOR_BACKGROUND;
wndclass.lpszMenuName=NULL;
wndclass.lpszClassName=clsName;
wndclass.hIconSm=LoadIcon(hInstance,IDI_APPLICATION);

int SW_XFS=GetSystemMetrics(SM_CXSCREEN);
int SW_YFS=GetSystemMetrics(SM_CYSCREEN);

if(!RegisterClassEx(&wndclass)){
MessageBox(NULL,TEXT("本程序需要在NT下运行!"),helloError,MB_ICONERROR);
return 0;
}
hwnd=CreateWindowEx(WS_EX_CLIENTEDGE,clsName,TEXT("HelloWin"),WS_OVERLAPPEDWINDOW,
0,0,SW_XFS,SW_YFS,NULL,NULL,hInstance,NULL);
if(!hwnd){
MessageBox(NULL,TEXT("窗口创建失败!"),helloError,MB_ICONERROR);
return 0;
}

ShowWindow(hwnd,SW_SHOW);
UpdateWindow(hwnd);
//消息循环
while(GetMessage(&msg,NULL,0,0)){
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return msg.wParam;
}

LRESULT CALLBACK WndProc(HWND hWnd,UINT nMessage,WPARAM wParam,LPARAM lParam){
HDC hdc;
PAINTSTRUCT ps;
RECT rect;
const TCHAR buff[]=TEXT("Hello World!");

switch(nMessage){
case WM_CREATE:
PlaySound(TEXT("c:\\HelloWin.mp3"),NULL,SND_FILENAME|SND_ASYNC);
//注意要在project->settings->里的link一项中Object/library modules
//里添加winmm.lib否则要报错的

return 0;
case WM_RBUTTONDOWN:
MessageBox(hWnd,TEXT("鼠标左键按下!"),TEXT("HelloWin"),MB_OK);
break;
case WM_KEYDOWN:
switch(wParam){
case VK_ESCAPE:
MessageBox(hWnd,TEXT("ESC键按下!"),TEXT("HelloWin"),MB_OK);
PostQuitMessage(0);
return 0;
default:
return DefWindowProc(hWnd,nMessage,wParam,lParam);
}
return 0;

case WM_PAINT:
hdc=BeginPaint(hWnd,&ps);
GetClientRect(hWnd,&rect);
SetTextColor(hdc,RGB(255,0,0));
TextOut(hdc,300,400,buff,sizeof(buff));
SetTextColor(hdc,RGB(0,0,255));
DrawText(hdc,buff,-1,&rect,DT_CENTER|DT_VCENTER|DT_SINGLELINE);
EndPaint(hWnd,&ps);
return 0;
case WM_DESTROY:
PostQuitMessage(0);
return 0;
default:
return DefWindowProc(hWnd,nMessage,wParam,lParam);
}

return DefWindowProc(hWnd,nMessage,wParam,lParam);
}
wizlian 2003-10-17
  • 打赏
  • 举报
回复
另外补充一点,你要在project->settings->里的link一项中Object/library modules
里添加winmm.lib否则要报错的
dragon8250 2003-10-17
  • 打赏
  • 举报
回复
那位能用代码说明一下阿??麻烦了!
wizlian 2003-10-17
  • 打赏
  • 举报
回复
PlaySound(PSTR,HMODULE,DWORD)
PlaySound("c:\\1.wav",NULL,SND_FILENAME|SND_ASYNC);
这个只能播放waveform
tigerfox 2003-10-17
  • 打赏
  • 举报
回复
另外还要注意音频文件的格式。
wav, mp3可直接播放,rm要有适当的解码器。
tigerfox 2003-10-17
  • 打赏
  • 举报
回复
其实很简单:开一个线程播放音乐就行了。或用计时器控制,重复地播放
Paris_Luo 2003-10-17
  • 打赏
  • 举报
回复
用directsound试试
dragon8250 2003-10-17
  • 打赏
  • 举报
回复
应该是用PlaySound();
可是具体怎么用啊?那位大哥能详细说明一下啊!
对声音文件的格式有什么要求吗》?
如果比如我想将c:\1.rm作为背景音乐可以吗??
dragon8250 2003-10-17
  • 打赏
  • 举报
回复
在线等待中。。。。
yaoha2003 2003-10-17
  • 打赏
  • 举报
回复
UP
加载更多回复(1)
很好的电子书教程! 什么是 Android? Android是一个专门针对移动设备的软件集,它包括一个操作系统,中间件和一些重要的应用程序。Beta 版 的 Android SDK 提供了在 Android 平台上使用 JaVa 语言进行 Android 应用开发必须的工具和 API 接口。 特性 • 应用程序框架 支持组件的重用与替换 • Dalvik Dalvik Dalvik Dalvik 虚拟机 专为移动设备优化 • 集成的浏览器 基于开源的 WebKit 引擎 • 优化的图形库 包括定制的2D 图形库,3D 图形库基于 OpenGL ES 1.0 (硬件加速可选) • SQLite SQLite SQLite SQLite 用作结构化的数据存储 • 多媒体支持 包括常见的音频、视频和静态图像格式 (如 MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, GIF) • GSM GSM GSM GSM 电话技术 (依赖于硬件) • 蓝牙 Bluetooth, Bluetooth, Bluetooth, Bluetooth, EDGE, EDGE, EDGE, EDGE, 3G, 3G, 3G, 3G, 和 WiFi WiFi WiFi WiFi(依赖于硬件) • 照相机,GPS GPS GPS GPS,指南针,和加速度计(accelerometer accelerometer accelerometer accelerometer) (依赖于硬件) • 丰富的开发环境 包括设备模拟器,调试工具,内存及性能分析图表,和 Eclipse 集成开发环境插件 应用程序 Android 会同一系列核心应用程序包一起发布,该应用程序包包括 email 客户端, SMS 短消息程序,日历, 地图,浏览器,联系人管理程序等。所有的应用程序都是使用 JAVA 语言编写的。 应用程序框架 开发人员也可以完全访问核心应用程序所使用的 API 框架。该应用程序的架构设计简化了组件的重用;任何 一个应用程序都可以发布它的功能块并且任何其它的应用程序都可以使用其所发布的功能块(不过得遵循框 架的安全性限制)。同样,该应用程序重用机制也使用户可以方便的替换程序组件。 隐藏在每个应用后面的是一系列的服务和系统, 其中包括; • 丰富而又可扩展的视图( Views),可以用来构建应用程序, 它包括列表(lists),网格( grids), 文 本框(text boxes),按 钮 (buttons), 甚至可嵌入的 web 浏览器。 • 内容提供器(Content Providers)使得应用程序可以访问另一个应用程序的数据(如联系人数据库),或 者共享它们自己的数据 • 资源管理器(Resource Manager)提供 非代码资源的访问,如本地字符串,图形,和布局文件( layout files )。 • 通知管理器 (Notification Manager) 使得应用程序可以在状态栏中显示自定义的提示信息。 4 • 活动管理器( Activity Manager) 用来管理应用程序生命周期并提供常用的导航回退功能。 程序库 Android 包含一些 C/C++库,这些库能被 Android 系统中不同的组件使用。它们通过 Android 应用程序框架 为开发者提供服务。以下是一些核心库: • 系统 CCCC 库 - 一个从 BSD 继承来的标准 C 系统函数库( libc ), 它是专门为基于 embedded linux 的设备定制的。 • 媒体库 - 基于 PacketVideo OpenCORE;该库支持多种常用的音频、视频格式回放和录制,同时支持 静态图像文件。编码格式包括 MPEG4, H.264, MP3,AAC, AMR, JPG, PNG 。 • Surface Surface Surface Surface Manager Manager Manager Manager - 对显示子系统的管理,并且为多个应用程序提 供了2D 和3D 图层的无缝融合。 • LibWebCore LibWebCore LibWebCore LibWebCore - 一个最新的 web 浏览器引擎用,支持 Android 浏览器和一个可嵌入的 web 视图。 • SGL SGL SGL SGL - 底层的2D 图形引擎 • 3D3D3D3D libraries libraries libraries libraries - 基于 OpenGL ES 1.0 APIs 实现;该库可以使用硬件 3D 加速(如果可用)或者使用高 度优化的3D 软加速。 • FreeType FreeType FreeType FreeType -位图(bitmap)和矢量(vector)字体显示。 • SQLite SQLite SQLite SQLite - 一个对于所有应用程序可用,功能强劲的轻型关系型数据库引擎。 Android Android Android Android 运行库 Android 包括了一个核心库,该核心库提供了 JAVA 编程语言核心库的大多数功能。 每一个 Android 应用程序都在它自己的进程中运行,都拥有一个独立的 Dalvik 虚拟 机实例。Dalvik 被设计 成一个设备可以同时高效地运行多个虚拟系统。 Dalvik 虚拟机执行(.dex)的 Dalvik 可执行文件,该格式文 件针对小内存使用做了 优化。同时虚拟机是基于寄存器的,所有的类都经由 JAVA 编译器编译,然后通过 SDK 中 的 "dx" 工具转化成.dex 格式由虚拟机执行。 Dalvik 虚拟机依赖于 linux 内核的一些功能,比如线程机制和底层内存管理机制。 Linux Linux Linux Linux 内核 Android 的核心系统服务依赖于 Linux 2.6 内核,如安全性,内存管理,进程管理, 网络协议栈和驱动模型 。 Linux 内核也同时作为硬件和软件栈之间的抽象层。 5 建立 Android Android Android Android 开发环境 ① 下载 JDK 5 or JDK 6 (JRE alone is not sufficient) ->安装->设置环境变量 JAVA_HOME CLASSPATH path ② 下载 Eclipse 3.3 (Europa), 3.4 (Ganymede) IDE for JAVA->解压 ③ 下载 Android SDK 解压-> path 里加入 SDK 包中的 tools 目录全路径 ④ 下载 ADT 0.8.0 解压 ⑤ 打开 Eclipse 安装 ADT 插件 Android Android Android Android 的系统架构 系统构架 6 支持的功能 + Application framework: 可重用的和可替换的组件部分,在这个层面上,所有的软件都是平等的。 + Dalvik virtul machine: 一个基于 Linux 的虚拟机。 + Integrated browser: 一个基于开源的 WebKit 引擎的浏览器,在应用程序层。 + Optimized graphics: 包含一个自定义的2D 图形库和基于 OpenGL ES 1.0 标准的3D 实现。 + SQLite: 数据库 + Media support: 通用的音频,视频和对各种图片格式的支持(MPEG4, H.264, MP3,AAC, AMR, JPG, PNG, GIF) + GSM Telephony: GSM 移动网络, 硬件支持。 + Bluetooth, EDGE, 3G, and WiFi: 都依赖于硬件支持。 + Camera, GPS, compass, and accelerometer: 都依赖于硬件支持。 + Rich development environment: 包含一套完整的开发工具集,方便跟踪调试,内存检测和性能测试,而且 提供了 Eclipse 的插件。 最底层的是一个 Linux Kernel,加载了几个移动设备必要的系统驱动(这么说来 Android 基础系统是要以 GPL 发布了?不知道 34 家厂商的硬件开发商们是怎么样想的);上面是类库和 Runtime,绿色的类库部分可以看 到大名鼎鼎的 SQLite,这个软件甚至声称自己属于公共领域(比 MIT License 还要强 @@),字体 FreeType 是 BSD-style License 的,图形库 OpenGL ES 只需通过产品测试,无偿使用于产品。再向上看是应用层的东西 了,这里可以做的事情就非常多了,各个社区,各个厂家都可以参与进来。难怪 Android 的 sdk 可以 Apache License 发布了,对企业和开发人员友好啊。 那么 Google 自己的东西在哪里呢?没错,就是右边那个 runtime, 最吸引技术人员的就是这个 runtime(注意,这个才是 Android 的 核 心 )。Google 为它准备了一个虚拟机,叫 做 Dalvik。这个让人摸不着头脑的东西的到底是什么?从开发平台上我们清清楚楚地得到了答案:Java Android Android Android Android 学习方法 ① 了解什么是 Androi ② 建立开发环境 ③ 阅读 SDK 文档 ④ 背景知识 � Java � 面向对象 � 设计模式 � J2ME、Brew 、Symbian

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧