VB开发中背景音乐的制作

VB开发中背景音乐的制作

http://www.sina.com.cn 2001/04/23 17:09 中国电脑教育报 武正伦

  背景音乐不仅在软件中起到“声”、“文”并茂的效果,而且能使用户减少在漫长的计算、等待过程中所带来的困倦和烦躁情绪,我们将通过用Microsoft Visual Basic开发为例,来讲解背景音乐在软件中的应用。

  使用Microsoft Visual Basic进行多媒体音乐的播放是一件非常容易的事情。Microsoft Windows系统中支持两种声音文件:WAV格式文件和MIDI格式文件,一般使用API(Window

<script language=JavaScript1.1 src="http://ad.doubleclick.net/adj/minisite.sina.com.cn/tech;sz=1x1;num=28729036424615452?"> </script>
s应用程序编程接口)函数sndPlaySound播放WAV格式文件,使用mciExecute函数来播放MIDI文件。

  1、播放WAV格式文件

  要播放WAV格式文件,你必须在程序窗口的通用声明部分或标准模块中添加如下的声明:

  Public Const SND_SYNC = &&H0

  Public Const SND_ASYNC = &&H1

  Public Const SND_NODEFAULT = &&H2

  Public Const SND_MEMORY = &&H4

  Public Const SND_ALIAS = &&H10000

  Public Const SND_FILENAME = &&H20000

  Public Const SND_RESOURCE = &&H40004

  Public Const SND_ALIAS_ID = &&H110000

  Public Const SND_ALIAS_START = 0

  Public Const SND_LOOP = &&H8

  Public Const SND_NOSTOP = &&H10

  Public Const SND_VALID = &&H1F

  Public Const SND_NOWAIT = &&H2000

  Public Const SND_VALIDFLAGS = &&H17201F

  Public Const SND_RESERVED = &&HFF000000

  Public Const SND_TYPE_MASK = &&H170007

  Private Declare Function sndPlaySound Lib "winmm.dll" Alias "sndPlaySoundA" (ByVal lpszSoundName As String, ByVal uFlags As Long) As Long

  sndPlaySound函数需要两个参数:第一个参数soundfilename是要播放的WAV文件的名称;第二个参数是一个表明播放方式的标识常量,其定义的值如前面的声明所示,通常所使用的标识意义如下:

  SND_SYNC播放WAV格式文件,播放完毕后将控制转移回应用中。

  SND_ASYNC播放WAV格式文件,将控制立即转移回应用程序中,而不管对WAV文件的播放是否结束。

  SND_MEMORY用于播放以前已经加载到内存中的WAV格式文件。

  SND_LOOP循环播放WAV格式文件。

  注意:SND_LOOP标识通常需要同SND_ASYNC共同使用,也即在两个标识之间添加“与”播放符,以免在对WAV格式文件进行播放的时候将系统挂起。

  2、播放MIDI格式文件

  播放MIDI格式文件时,你必须在程序窗口的通用声明部分中或标准模块中添加如下的声明语句:

  Private Declare Function mciExecute Lib "winmm.dll" Alias "mciExecute" (ByVal lpstrCommand As String) As Long

  API函数mciExecute只有一个参数:CommandString,它是一个命令字符串,用于表明对声音文件播放的命令,例如,要完整播放声音文件“C:WindowsMediaCanyon.mid”,只需要用以下一些语句即可实现:

  Dim ReturnValue As Long

  ReturnSoundValue = mciExecute("play C:WindowsMediaCanyon.mid")

  如果只播放MIDI格式文件的部分,就可以使用from...to...这种语句格式,例如:需要播放CANYON.MID文件的20毫秒到500毫秒的部分,可以使用如下的语句:

  Dim ReturnValue As Long

  ReturnSoundValue = mciExecute("play C: WINDOWS MEDIACANYON.MID from 20 to 500")

  使用API函数mciExecute也可以用来对WAV格式文件进行播放,方法同播放MIDI基本一样。现举列如下:

  1、在Visual Basic应用窗体中加入以下声明:

  Private Declare Function sndPlaySound Lib "winmm.dll" Alias "sndPlaySoundA" (ByVal lpszSoundName As String, ByVal uFlags As Long) As Long

  Const SND_SYNC = &&H0

  Const SND_ASYNC = &&H1

  Const SND_NODEFAULT = &&H2

  Const SND_MEMORY = &&H4

  Const SND_ALIAS = &&H10000

  Const SND_FILENAME = &&H20000

  Const SND_RESOURCE = &&H40004

  Const SND_ALIAS_ID = &&H110000

  Const SND_ALIAS_START = 0

  Const SND_LOOP = &&H8

  Const SND_NOSTOP = &&H10

  Const SND_VALID = &&H1F

  Const SND_NOWAIT = &&H2000

  Const SND_VALIDFLAGS = &&H17201F

  Const SND_RESERVED = &&HFF000000

  Const SND_TYPE_MASK = &&H170007

  Private Declare Function mciExecute Lib "winmm.dll" Alias "mciExecute" (ByVal lpstrCommand As String) As Long

  2、在窗中激活事件中加入以下代码:

  Private Sub Form_Activate()

  Dim ReturnValue As Long

  ReturnValue = sndPlaySound("C:windowsMEDIATADA.WAV",SND_SYNC)End Sub

  通过(F5)键来运行该程度即可听到背景音乐。


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/58033.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Android微信登录在华为手机上无法调起授权界面的问题

Android微信登录在华为手机上无法调起授权界面的问题 App集成了微信登录&#xff0c;在其他手机上微信登录都可以正常调起微信授权页面&#xff0c;并且登录成功&#xff0c;但是 在华为手机上调用微信登录&#xff0c;没报异常&#xff0c;也无法调起微信授权页面&#xff0c;…

AI 绘图:MidJourney 的提示语句(Prompt)怎么写?

这篇文章主要总结了在 AI 绘画中&#xff0c;使用 MidJourney 时提示语句 Prompt 的写法。 1、基本 Prompt 写法 完整的 Prompt 可以分为三个部分&#xff1a;[Image Prompts][Text Prompt][Parameters]&#xff0c;其中&#xff1a; 图片提示&#xff08;Image Prompts&…

【EasyPoi实战系列】Spring Boot使用EasyPoi的注解让表格更漂亮以及图片的导出 - 第468篇

历史文章&#xff08;文章累计460&#xff09; 《国内最全的Spring Boot系列之一》 《国内最全的Spring Boot系列之二》 《国内最全的Spring Boot系列之三》 《国内最全的Spring Boot系列之四》 《国内最全的Spring Boot系列之五》 《国内最全的Spring Boot系列之六》 【…

拉伯证券|大股东或易主,阿里巴巴换股入局

三大股指齐上扬&#xff0c;早盘主力埋伏这些股。 到午间收盘&#xff0c;“家居零售榜首股”之称的美凯龙一字涨停&#xff0c;港股红星美凯龙涨24%&#xff0c;此前一度涨超30%。 消息面上&#xff0c;1月13日晚间&#xff0c;美凯龙发布公告称&#xff0c;公司控股股东红星…

Day02| 第四期-阿里巴巴股票行情分析(一)

01 前言 2020年高考的第一天到来了&#xff0c;不晓得你的心情如何&#xff0c;我想我们始终忘不了的是对追梦过程中的努力&#xff0c;希望长大以后的我们也不要忘记那种拼搏的精神&#xff0c;今天也会是元气满满的一天&#xff0c;接下来&#xff0c…

2021年PHP会被淘汰吗

首先我可以确定的是&#xff0c;PHP肯定不会被淘汰。 但是市场占有率肯定回不去以前的状态&#xff0c;以前PHP可以做网页的任何事&#xff0c;包括前端和接口。 但是近几年前端的发展非常迅猛&#xff0c;angular、vue和react三大前端框架的相继出现&#xff0c;使得前后端已…

第一个真正实现智能涌现的国产大语言模型,内测即将开启

出品 | OSC开源社区&#xff08;ID&#xff1a;oschina2013) 昆仑万维昨日宣布&#xff0c;由昆仑万维和奇点智源合作自研、中国第一个真正实现智能涌现的国产大语言模型 ——「天工」3.5 发布在即&#xff0c;并将于 4 月 17 日启动邀请测试。 公告指出&#xff0c;「天工」大…

Google 工程主管:AIGC 将在三年内终结编程!

大家注意&#xff1a;因为微信最近又改了推送机制&#xff0c;经常有小伙伴说错过了之前被删的文章&#xff0c;比如前阵子冒着风险写的爬虫&#xff0c;再比如一些限时福利&#xff0c;错过了就是错过了。 所以建议大家加个星标&#xff0c;就能第一时间收到推送。&#x1f44…

文献阅读必备常识和工具推荐

本文旨在总结研究生阶段(AI领域)关于论文检索、阅读、期刊会议分区、影响因子等常识问题&#xff0c;也包括一些工具和网站的推荐 1.关于期刊、会议的一些常识 学术论文分为期刊和会议&#xff0c;不同领域期刊和会议的权重不同&#xff0c;计算机领域为例&#xff1a; 计算机…

Qt-》QAudioOutput play 播放wav文件

用Qt写音频比directxShow方便多了&#xff0c;很好用&#xff0c;初级文章&#xff0c;供大家学习路上少分困难&#xff0c;多份轻松。 #include <QFile>#include <QAudioFormat>#include <QAudioOutput>#include <QSound>int main(){QFile inputFile…

将wav音频文件频谱分析后映射到钢琴琴键上(类似audio to midi功能)

import wave import numpy from pyaudio import PyAudio import matplotlib.pyplot as plt from matplotlib.ticker import MultipleLocator, FormatStrFormatter import mathwf wave.open(e:/tests/audio2miditest.wav, rb) # 创建PyAudio对象 p PyAudio() stream p.open(f…

Qt+MPlayer音乐播放器开发笔记(一):ubuntu上编译MPlayer以及Demo演示

若该文为原创文章&#xff0c;转载请注明原文出处 本文章博客地址&#xff1a;https://hpzwl.blog.csdn.net/article/details/118713520 长期持续带来更多项目与技术分享&#xff0c;咨询请加QQ:21497936、微信&#xff1a;yangsir198808 红胖子(红模仿)的博文大全&#xff1a;…

android音乐播放器频谱图控件

先上效果图&#xff1a; 先通过测量获取view的宽高&#xff0c;然后将宽分为12份&#xff0c;11份为11个条形柱&#xff0c;剩余一份在分为10份作为条形柱之间的间距 Overrideprotected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {super.onMeasure(widthMe…

Virtual Piano 自动播放乐谱

钢琴按键分布 钢琴 一共88个键&#xff0c;52个白键&#xff0c;36个黑键。 从左到右按音区分&#xff0c;可分为 低音区&#xff1a;不完整的大二字组、大字一组、大字组&#xff1b; 中音区&#xff1a;小字组、小字一组、小字二组&#xff1b; 高音区&#xff1a;小字三…

Qt开发音乐播放器时,频谱显示控件的详细绘制(好思路)

总第46篇 本文详细梳理了在Qt框架制作音乐播放器的过程中,频谱显示的绘制过程。 在开发音乐播放器的时候,需要将音频数据转换成对应的频谱显示,我们可以采用fmod 第三方库来处理,即通过fomd获取音频数据对应的频谱数据,再在项目中对数据进行绘制即可,这样使工程高度解耦,…

用Qt写一个简单的音乐播放器(一):使用QMediaPlayer播放音乐

一、前言 QMediaplayer可以用于解析音频文件和视频文件&#xff0c;继承自QMediaObject&#xff0c;涉及到的对象为QMediaContent。QMediaObject可以提供关于媒体内容的接入&#xff0c;通过URL进行初始化&#xff0c;同时也可以提供可以播放的媒体文件的列表&#xff0c;与QM…

基于Qt的音乐播放器(一)添加音频文件,播放音乐,更新进度条

2020博客之星年度总评选进行中&#xff1a;请为74号的狗子投上宝贵的一票&#xff01; 我的投票地址&#xff1a;点击为我投票 文章目录 1.实现音频文件对话框(QFileDialog类)2.实现音乐播放&#xff08;QMediaPlayer类/QMediaPlaylist类&#xff09;3.实现进度条更新以及文件…

基于QT的音乐播放器频谱实现

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、官方文档分析二、实现步骤1. 捕获原始音频数字信号2. 读取音频数据3. 计算FFT4. 项目源码目录5. 实际效果 总结 前言 网上的很多音乐播放器频谱实现&#…

A40i使用笔记:使用QT调用aplay播放wav音频/混音

一、前言 在linux当中播放音乐的方式有很多种&#xff0c;我使用的A40i核心板&#xff0c;是 aplay 指令&#xff0c;是 alsa 的一个指令&#xff0c;也就是说需要先安装有 alsa&#xff0c;使用其他arm开发板的小伙伴可以先自行安装alsa之后在进入正文&#xff0c;这里我没实…

音频频谱显示-基于fmod设计音乐播放器并动态显示频谱图(二)

音频频谱显示-显示音频文件静态频谱图(一) https://blog.csdn.net/xiaolong1126626497/article/details/126971535 音频频谱显示-基于fmod设计音乐播放器并动态显示频谱图(二) https://blog.csdn.net/xiaolong1126626497/article/details/126973994 一、前言 在做音乐播…