windows – 在Perl脚本中播放声音
发布时间:2020-12-14 04:21:00 所属栏目:Windows 来源:网络整理
导读:我正在尝试将声音添加到Perl脚本以提醒用户该事务处于正常状态(用户可能无法在工作时始终查看屏幕).我希望尽可能保持便携,因为脚本在 Windows和 Linux工作站上运行. 我可以 use Win32::Sound;Win32::Sound::Play('SystemDefault',SND_ASYNC); 对于Windows.但
我正在尝试将声音添加到Perl脚本以提醒用户该事务处于正常状态(用户可能无法在工作时始终查看屏幕).我希望尽可能保持便携,因为脚本在
Windows和
Linux工作站上运行.
我可以 use Win32::Sound; Win32::Sound::Play('SystemDefault',SND_ASYNC); 对于Windows.但我不确定如何在Linux(Gnome)上调用泛型声音.到目前为止,我已经想到了 system('paplay /usr/share/sounds/gnome/default/alert/sonar.ogg'); 但我不确定我是否可以指望这条路可用. >有没有更好的方法来调用Gnome中的默认声音 我宁愿远离系统扬声器发出哔哔声,这听起来很糟糕(这会发挥很大作用),Ubuntu无论如何都会将PC扬声器列入黑名单.
一个更便携的方式来获取paplay的路径(假设它在那里)可能是使用
File::Which .然后你可以获得如下路径:
use File::Which; my $paplay_path = which 'paplay'; 要异步播放声音,您可以分叉子进程: my $pid = fork; if ( !$pid ) { # in the child process system $paplay_path,'/usr/share/sounds/gnome/default/alert/sonar.ogg'; } # parent proc continues here 另请注意,我使用了多参数形式的系统;这样做可以避免shell并直接运行所请求的程序.这可以避免危险的错误(并且效率更高.) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- windows – 在控制文档管理方面我有哪些选择
- active-directory – 检查WQL中的缺失值或(WQL / WMI过滤器
- 在Windows 10上清除和管理TPM (受信任的平台模块)
- wpf – 如何构建一个Windows应用程序拦截并通过击键和鼠标点
- iis-7 – Powershell Get-WebSite名称参数被忽略
- 虚拟化 – 连接到域中的其他Hyper-V Manager实例
- wpf – xaml Scrollviewer – 禁用整个窗口的过度滚动/橡皮
- Windows 8移动应用程序 – 获取在线数据并显示javascript
- windows – 需要后台刷新的哪些策略列表,需要重新启动
- 禁用win10笔记本自带键盘
推荐文章
站长推荐
- OpenCV与其他GUI(如Qt或WxWidgets)在Win32 VC
- 在Windows中,应用程序事件日志中有哪些默认事件源
- winapi – Win32 CreatePatternBrush
- 使用Windows批处理脚本重命名目录中的所有文件
- windows – 为什么模拟会话中定义的DOS设备不会出
- 为什么Windows 7/2008 mstsc在服务器证书警告之前
- winapi – 如何让Windows资源管理器在“缩略图”
- windows-server-2003 – 如何修复启动Windows SB
- windows安装MongoDB副本集,通过Java程序实现数据
- windows-8 – 为webview控件提供域/用户凭据
热点阅读