php如何调用声音beep,使用C++播放Beep声,可调节音高
要生成音乐,当然最开始的肯定是从蜂鸣器发生开始了。
MSDN中是这样定义的
BOOL WINAPI Beep(
_In_ DWORD dwFreq,
_In_ DWORD dwDuration
);
前面第一个频率,第二个是持续时间(毫秒)
使用Visual Studio 2019,点击“按钮2”可听到声音,音调高低,时间长短不同。
代码如下:
// WindowsProject1.cpp : 定义应用程序的入口点。
//
#include "framework.h"
#include "WindowsProject1.h"
#include
using namespace std;
#define MAX_LOADSTRING 100
#define IDB_ONE 3301 //按钮1
#define IDB_TWO 3302 //按钮2
// 全局变量:
HINSTANCE hInst; // 当前实例
WCHAR szTitle[MAX_LOADSTRING]; // 标题栏文本
WCHAR szWindowClass[MAX_LOADSTRING]; // 主窗口类名
// 此代码模块中包含的函数的前向声明:
ATOM MyRegisterClass(HINSTANCE hInstance);
BOOL InitInstance(HINSTANCE, int);
LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
INT_PTR CALLBACK About(HWND, UINT, WPARAM, LPARAM);
int APIENTRY wWinMain(_In_ HINSTANCE hInstance,
_In_opt_ HINSTANCE hPrevInstance,
_In_ LPWSTR lpCmdLine,
_In_ int nCmdShow)
{
UNREFERENCED_PARAMETER(hPrevInstance);
UNREFERENCED_PARAMETER(lpCmdLine);
// TODO: 在此处放置代码。
// 初始化全局字符串
LoadStringW(hInstance, IDS_APP_TITLE, szTitle, MAX_LOADSTRING);
LoadStringW(hInstance, IDC_WINDOWSPROJECT1, szWindowClass, MAX_LOADSTRING);
MyRegisterClass(hInstance);
// 执行应用程序初始化:
if (!InitInstance (hInstance, nCmdShow))
{
return FALSE;
}
HACCEL hAccelTable = LoadAccelerators(hInstance, MAKEINTRESOURCE(IDC_WINDOWSPROJECT1));
MSG msg;
// 主消息循环:
while (GetMessage(&msg, nullptr, 0, 0))
{
if (!TranslateAccelerator(msg.hwnd, hAccelTable, &msg))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
}
return (int) msg.wParam;
}
//
// 函数: MyRegisterClass()
//
// 目标: 注册窗口类。
//
ATOM MyRegisterClass(HINSTANCE hInstance)
{
WNDCLASSEXW wcex;
wcex.cbSize = sizeof(WNDCLASSEX);
wcex.style = CS_HREDRAW | CS_VREDRAW;
wcex.lpfnWndProc = WndProc;
wcex.cbClsExtra = 0;
wcex.cbWndExtra = 0;
wcex.hInstance = hInstance;
wcex.hIcon = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_WINDOWSPROJECT1));
wcex.hCursor = LoadCursor(nullptr, IDC_ARROW);
wcex.hbrBackground = (HBRUSH)(COLOR_WINDOW+1);
wcex.lpszMenuName = MAKEINTRESOURCEW(IDC_WINDOWSPROJECT1);
wcex.lpszClassName = szWindowClass;
wcex.hIconSm = LoadIcon(wcex.hInstance, MAKEINTRESOURCE(IDI_SMALL));
return RegisterClassExW(&wcex);
}
//
// 函数: InitInstance(HINSTANCE, int)
//
// 目标: 保存实例句柄并创建主窗口
//
// 注释:
//
// 在此函数中,我们在全局变量中保存实例句柄并
// 创建和显示主程序窗口。
//
BOOL InitInstance(HINSTANCE hInstance, int nCmdShow)
{
hInst = hInstance; // 将实例句柄存储在全局变量中
HWND hWnd = CreateWindowW(szWindowClass, szTitle, WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, nullptr, nullptr, hInstance, nullptr);
if (!hWnd)
{
return FALSE;
}
ShowWindow(hWnd, nCmdShow);
UpdateWindow(hWnd);
return TRUE;
}
//
// 函数: WndProc(HWND, UINT, WPARAM, LPARAM)
//
// 目标: 处理主窗口的消息。
//
// WM_COMMAND - 处理应用程序菜单
// WM_PAINT - 绘制主窗口
// WM_DESTROY - 发送退出消息并返回
//
//
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
HINSTANCE hg_app;
switch (message)
{
case WM_CREATE:
{
CreateWindow(TEXT("BUTTON"), TEXT("HoverTree"), WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON,
30, 30, 200, 100, hWnd, (HMENU)IDB_ONE, hInst, 0);
ShowWindow(hWnd, SW_SHOWNORMAL);
CreateWindow(TEXT("BUTTON"), TEXT("按钮2"), WS_VISIBLE | WS_CHILD | BS_PUSHBUTTON,
35, 150, 120, 60, hWnd, (HMENU)IDB_TWO, hInst, NULL);
}
break;
case WM_COMMAND:
{
int wmId = LOWORD(wParam);
// 分析菜单选择:
switch (wmId)
{
case IDB_ONE:
MessageBox(NULL, TEXT("内容 Hello world!"), TEXT("标题 Hovertree"), MB_OK);
break;
case IDB_TWO: {
Beep(750, 500);
Beep(800, 300);
Beep(900, 900);
Beep(1000, 300);
Beep(1100, 100);
Beep(1200, 500);
Beep(1300, 2000);
}
break;
case IDM_ABOUT:
DialogBox(hInst, MAKEINTRESOURCE(IDD_ABOUTBOX), hWnd, About);
break;
case IDM_EXIT:
DestroyWindow(hWnd);
break;
default:
return DefWindowProc(hWnd, message, wParam, lParam);
}
}
break;
case WM_PAINT:
{
PAINTSTRUCT ps;
HDC hdc = BeginPaint(hWnd, &ps);
// TODO: 在此处添加使用 hdc 的任何绘图代码...
EndPaint(hWnd, &ps);
}
break;
case WM_DESTROY:
PostQuitMessage(0);
break;
default:
return DefWindowProc(hWnd, message, wParam, lParam);
}
return 0;
}
// “关于”框的消息处理程序。
INT_PTR CALLBACK About(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
{
UNREFERENCED_PARAMETER(lParam);
switch (message)
{
case WM_INITDIALOG:
return (INT_PTR)TRUE;
case WM_COMMAND:
if (LOWORD(wParam) == IDOK || LOWORD(wParam) == IDCANCEL)
{
EndDialog(hDlg, LOWORD(wParam));
return (INT_PTR)TRUE;
}
break;
}
return (INT_PTR)FALSE;
}
其中framework.h代码如下:
// header.h: 标准系统包含文件的包含文件,
// 或特定于项目的包含文件
//
#pragma once
#include "targetver.h"
#define WIN32_LEAN_AND_MEAN // 从 Windows 头文件中排除极少使用的内容
// Windows 头文件
#include
// C 运行时头文件
#include
#include
#include
#include
php如何调用声音beep,使用C++播放Beep声,可调节音高相关推荐
- C#调用声音函数(PlaySound,Beep,MessageBeep等)
[转载]C#调用声音函数(PlaySound,Beep,MessageBeep等) <一>Visual Basic Beep() 1.使用Visual Basic Beep函数:添加引用 ...
- Android多媒体学习五:调用Android自带的播放器播放Audio
Android有其自带的播放器,我们可以使用隐式Intent来调用它:通过传入一个Action为ACTION_VIEW同时,指定Data为所要播放的Audio的Uri对象,并指定格式信息,则我们就可以 ...
- Android中调用系统已安装的播放器来播放网络流媒体视频
2019独角兽企业重金招聘Python工程师标准>>> 实现思路比较简单几行代码就可以搞定,在界面放一个Button或者带有播放图标的imageview,点击事件中调用本地播放器来播 ...
- 声音文件慢速播放不变调原理的猜想
一.先看一个简化问题: 假设有一声音波音f(t) = sin(2t),那么1/2速播放,等同于将时间t乘以系数1/2,将会变成f(t * 1 / 2) = sin(2t * 1 / 2)= sin( ...
- uni-app 声音/震动提示,播放系统默认消息声音 安卓(Android)测试通过
uni-app 声音/震动提示,播放系统默认消息声音 安卓(Android)测试通过 可以跟据自己需求使用,有不足的地方希望大家帮忙补充 参数 type Options vibrate:震动 othr ...
- 在计算机硬件中谁完成声音的获取与播放,初中信息技术上册《声音的获取与加工》教学.ppt...
<初中信息技术上册<声音的获取与加工>教学.ppt>由会员分享,可在线阅读,更多相关<初中信息技术上册<声音的获取与加工>教学.ppt(20页珍藏版)> ...
- EasyDSS如何通过API接口调用指定时间段的录像播放视频?
互联网视频云服务EasyDSS可支持视频直播.点播,在视频直播上最多可分为十六屏进行实时直播:在视频点播上则有视频点播广场便于用户自由点播,视频能力及灵活性非常强大,可满足用户的多场景需求. 为了便于 ...
- linux beep,软响铃 ── 把 beep 换成音乐
很多人千方百计想关掉控制台(或 X 终端模拟器)的嘀嘀声.我觉得有提示音不一定是坏事,但是那个嘀嘀声听起来的确有点烦人.而且在我的 irssi 中那个 beep 提示音实在是太小声了(而且也不好听). ...
- 【阴沟翻船】AVPlayer设置完毕马上调用play方法会导致播放没声音
注意:必须要KVO监听playItem的status,监听AVPlayerStatusReadyToPlay时再调用play方法,不论是远程的还是本地 NSURL *url = [[NSBundle ...
最新文章
- element ui只输入数字校验
- 入门NLP最优解:从项目实践轻松入手!
- 海南大学2020年申请考核博士研究生招生工作办法
- viewpager 无网络的时候滑动异常
- 网络营销外包——网络营销外包专员如何帮助企业挑选网站建设类型
- 用javascript实现自动隐藏页面字段
- 企业使用RTX腾讯通2013
- 阿里道延:我对技术架构的理解与架构师角色的思考
- Android下强制打开键盘
- java三次登录锁定_Java基础知识点有哪些 如何快速步入Java行业
- 问题 J: A+B Problem (II) : Input/Output Practice 山东科技大学OJ C语言
- 测试开发Python培训:抓取新浪微博抓取数据-技术篇
- (CSS3)CSS3- 最常用的属性(一)
- bzoj 3357: [Usaco2004]等差数列(DP+map)
- Docker实践 -- 安装Docker
- java webservice接口开发实例_Webservice 接口开发简单例子
- win10键盘锁住了怎么解决
- auto semicolon insertion 自动分号补齐的坑
- 百度语音合成离线使用研究
- USB TO I2C(上海同旺电子)调试器调试LM75A--TI