程序的音频输出

有时候,软件需要播放一些音乐,这时候该怎么办呢?使用复杂的winAPI?不,还有更简单的方法:

uses crt;
const
 n=...;
 t=...;
 a:array[1..t]of longint=(...);
 b:array[1..t]of real=(...);
 sounds:array[-6..14]of longint=(...);
var
 i:longint;
begin
 for i:=1 to t do
  begin
   sound(sounds[a[i]]);
   delay(trunc(b*n));
   nosound;
  end;
end.

那么这段代码是什么意思呢?如下:

uses crt;
const
 n=...;   //每一拍的音长
 t=...;   //共有几个音符
 a:array[1..t]of longint=(...);   //音高(do就是1,下点就是减掉7,上点就是加上7)
 b:array[1..t]of real=(...);     //音长(以简谱中没有下划线没有附点的为一拍)
 sounds:array[-6..14]of longint=(...);  //音高hz
var
 i:longint;
begin
 for i:=1 to t do
  begin
   sound(sounds[a[i]]);   //播放
   delay(trunc(b*n));     //等待
   nosound;               //关闭上一次声音
  end;
end.

大家可以试试一些较短的乐曲来演奏,虽然效果不是很好,但是较为简单。

时间: 2024-10-12 08:53:23

程序的音频输出的相关文章

可以创建专业的客户端/服务器视频会议应用程序的音频和视频控件LEADTOOLS Video Conferencing SDK

LEADTOOLS Video Streaming Module控件为您创建一个自定义的视频会议应用程序和工具提供所有需要的功能.软件开发人员可以使用Video Streaming Module SDK,通过一些不同的配置来创建一些客户端/服务器应用程序.例如,如果有一个服务器需要向多个客户端发送音频/视频数据,那么就可以在服务器上创建这样的应用程序,比如多点传送或Web广播中的web多点传播.此外,当有多个捕捉点向一个源发送视频数据时,您可以创建安全/监控应用程序. 产品特征: 视频会议二进制

RDP协议集、音频输出、音频输入重定向虚拟通道

一.RDP协议集及子协议之间如何交互 由于目前Windows Server的版本已经进入到了2016版,因此在本文中,终端服务一律称为其最新名称:远程桌面服务(RDS). 以下组件对于了解远程桌面服务协议至关重要: RDP客户端:支持远程桌面服务协议的客户端称为RDP客户端,因为客户端安装了支持远程处理的软件组件.使用此RDP客户端,用户连接到RD会话主机服务器以登录到远程桌面计算机或远程应用程序. 远程桌面会话主机(RD会话主机):RDP客户端与之通信的服务器称为远程桌面会话主机(RD会话主机

音频处理(二) 音频输出

Windows下的音频输出常用的3中方法: 1. PlaySound:使用最简单直接,但是不够灵活,功能也非常单一,无法混音: 2. WaveOut:早期的Windows系统中广泛应用的音频输出程序接口,功能比PlaySound较完善(WaveIn用于音频输入): 3. DirectSound:现在Windows中主流的应用于音频输入输出的API,支持混音.独立音量控制.硬件加速.硬件仿真等强大的功能: PlaySound PlaySound的使用非常简单,下面是一个示例 (vs2013 Pro

3-响应音频输出的硬件(Managing Audio Playback)

用户在使用他们的android设备进行多媒体交互的时候通常有多种选择,大多数的设备有一个内置的话筒,有线耳机的插孔,还有一些会提供对于蓝牙设备的支持以及A2DP的支持等等. 检查哪个设备正在被使用 你的app应该受正在使用的音频播放设备的影响从而做出合理的响应. 下面的代码片段展示出,你可以请求 AudioManager来检查音频播放是否正被系统导向到设备的喇叭,有线耳机或者是蓝牙设备. 1 2 if(isBluetoothA2dpOn()){ 3 // Adjust output for Bl

程序题目:输出图形 输入:n为打出图形的行数, m为每行的个数,t为图形符号

package com.day; import java.util.Scanner; public class M { public static void main(String[] args) { Scanner sc=new Scanner(System.in); /* System.out.println("用户请输入图形的行数="+"每行的个数="+"图形符号="); int n=sc.nextInt(); int m=sc.nextI

【C语言】用结构体数组实现:有三个候选人,每个选民只能选一个人,编写一个选票程序,最终输出候选人的票数

//用结构体数组实现:有三个候选人,每个选民只能选一个人,编写一个选票程序,最终输出候选人的票数(假设有十个选民) #include <stdio.h> #include <stdio.h> struct Person //声明结构体 { char name[20]; int count; }leader[3]={"li",0,"zhang",0,"sun",0}; //定义结构体数组并初值化 int main() { i

VS中为非控制台程序提供控制台输出窗口

/************************************************************************/ /* 模块名:ConsoleAdapter 文件名:ConsoleAdapter.h 功 能:为非控制台程序提供控制台输出窗口 参 考: 1. http://www.codeproject.com/Articles/15836/Writing-to-and-read-from-the-console-From-a-GUI-ap ----------

VC++ GUI桌面程序添加控制台调试输出

VC++ GUI桌面程序添加控制台调试输出 GUI控制台 GUI桌面应用程序添加控制台只需按如下步骤在代码中添加即可: 1. 第一步:引入头文件 #include "stdio.h" 2.第二步:在程序开始部分添加如下代码 AllocConsole(); freopen("CONOUT$", "w", stdout);//开启中文控制台输出支持 3. 第三步:程序结束部分添加 FreeConsole(); //释放 原文地址:https://ww

AM2320 温湿度传感器 C51程序 uart串口输出温湿度

实物图 引脚图 接线图 效果图 源代码 //****************************************************************// //AM系列温湿度传感器,读IIC使用示例  //单片机 :AT89S52 或 STC89C52RC  //功能  :串口发送温湿度数据  波特率 9600  //晶振  :12M (用户系统时钟如不是12M 请更改相关宏定义及注释的延时时间) //波特率:9600 //编译环境:  Keil 4 //*********