本帖最后由 523066680 于 2025-3-7 10:51 编辑
这种大概是函数生成波形,通过win32的音频接口发声。
perl有一个 Auido::Beep 可以简单地播放指定频率/波形的声音- #functional simple way
- use Audio::Beep;
- beep(880, 1000); # freq, duration
复制代码 ---
然后追溯一下 Audio::Beep 的模块代码,是调用 Win32::API- use strict;
- use Carp;
- use Win32::API;
-
- sub new {
- my $class = shift;
- my $player = Win32::API->new('kernel32', 'Beep', 'NN', 'N')
- or croak "Cannot initialize " . __PACKAGE__ . " object";
- return bless {
- player => $player
- }, $class;
- }
-
- sub play {
- my $self = shift;
- my ($freq, $duration) = @_;
- return $self->{player}->Call(sprintf("%.0f", $freq), $duration);
- }
复制代码 ---
问一下kimi,结果更直接- #include <windows.h> // 包含Windows API的头文件
- #include <stdio.h>
-
- int main() {
- // 调用Beep函数,参数分别为频率(Hz)和持续时间(毫秒)
- Beep(800, 1000); // 频率800Hz,持续时间1000ms(1秒)
-
- printf("Beep sound played.\n");
- return 0;
- }
复制代码
|