PowerShell中实现播放WAV音频文件

 更新时间:2015年03月24日 12:04:52   投稿:junjie  
这篇文章主要介绍了PowerShell中实现播放WAV音频文件,本文直接给出实现代码,需要的朋友可以参考下

适用于所有PowerShell版本

其实在PowerShell中播放WAV文件非常简单:

复制代码 代码如下:

# 在Windows 目录找到一个可用的WAV音频文件
$WAVPath = Get-ChildItem -Path $env:windir -Filter *.wav -Recurse -ErrorAction SilentlyContinue |
 Select-Object -First 1 -ExpandProperty FullName
  
# 加载并播放
"Playing $WAVPath..."
  
$player = New-Object Media.SoundPlayer $WAVPath
$player.Play()
  
"Done!"

第一部分,从Windows 文件夹中递归地找出第一个WAV文件,然后选择它的路径。当然,你也可以将你自己收藏的WAV文件在第一行赋值给 $WAVFile。接下来使用Media.SoundPlayer加载并播放。注意,Play()方法使用的是子线程进行播放,所以方法会立即返回,但是音频可能还没有开始播放,或者播放结束。

你可以使用它来创建一个有声的进度条:当PowerShell在做某个任务时,可以一直播放某段音乐直到任务完成:

复制代码 代码如下:

# 在Windows 目录找到一个可用的WAV音频文件
$WAVPath = Get-ChildItem -Path $env:windir -Filter *.wav -Recurse -ErrorAction SilentlyContinue |
  Select-Object -First 1 -ExpandProperty FullName
 
 
# 加载并播放
 
$player = New-Object Media.SoundPlayer $WAVPath
$player.PlayLooping()
  
1..100 | ForEach-Object {
  Write-Progress -Activity 'Doing Something. Hang in' -Status $_ -PercentComplete $_
  Start-Sleep -MilliSeconds (Get-Random -Minimum 300 -Maximum 1300)
  }
$player.Stop()

这次,我们使用了 PlayLooping() 进行循环播放,你需要调用 Stop()方法手动停止。这也是为什么我们在脚本结束时调用了$player.stop()方法。

相关文章

  • PowerShell入门教程之访问.Net程序集、COM和WMI实例

    PowerShell入门教程之访问.Net程序集、COM和WMI实例

    这篇文章主要介绍了PowerShell入门教程之访问.Net程序集、COM和WMI实例,本文讲解了PowerShell作为Windows平台的脱水语言来访问其它资源的例子,需要的朋友可以参考下
    2014-10-10
  • Powershell ISE的抽象语法树编程示例

    Powershell ISE的抽象语法树编程示例

    这篇文章主要介绍了Powershell ISE的抽象语法树编程示例,本文讲解了抽象语法树的一些概念,并给出了代码实例,需要的朋友可以参考下
    2015-03-03
  • Powershell小技巧之删除不规则字符

    Powershell小技巧之删除不规则字符

    这里有段函数教你使用powershell时在任何路径中使用下划线去替换其中不规则部分,希望对大家有所帮助
    2014-09-09
  • Windows Powershell 变量的作用域

    Windows Powershell 变量的作用域

    Powershell所有的变量都有一个决定变量是否可用的作用域。Powershell支持四个作用域:全局、当前、私有和脚本。有了这些作用域就可以限制变量的可见性了,尤其是在函数和脚本中。
    2014-09-09
  • Powershell实现加密解密文本文件方法实例

    Powershell实现加密解密文本文件方法实例

    这篇文章主要介绍了Powershell实现加密解密文本文件方法实例,本文直接给出加密和解密代码实例,需要的朋友可以参考下
    2015-04-04
  • Powershell小技巧之从文件获取系统日志

    Powershell小技巧之从文件获取系统日志

    事件日志对于系统管理员的重要性自不待言,而基于图形界面的事件查看器毫无疑问是我们进行日志管理的首选工具,但绝不是最快捷的工具。其实,PowerShell提供了一种更简单的方式,利用它我们不仅可访问当前系统的事件日志,而且还可对数据进行排序、格式化等等。
    2014-10-10
  • Windows Azure VM上配置FTP服务器

    Windows Azure VM上配置FTP服务器

    这篇文章主要介绍了Windows Azure VM上配置FTP服务器,需要的朋友可以参考下
    2014-09-09
  • PowerShell替换字符串操作符replace简明教程

    PowerShell替换字符串操作符replace简明教程

    这篇文章主要介绍了PowerShell替换字符串操作符replace简明教程,本文用实例讲解字符串的替换操作,需要的朋友可以参考下
    2014-08-08
  • Powershell实现获取电脑序列号功能脚本分享

    Powershell实现获取电脑序列号功能脚本分享

    这篇文章主要介绍了Powershell实现获取电脑序列号功能脚本分享,本文直接给出实现代码,需要的朋友可以参考下
    2015-03-03
  • Windows Powershell 命令集 cmdlets

    Windows Powershell 命令集 cmdlets

    在Windows PowerShell中,需要使用cmdlet执行指令。一个cmdlet代表着可操作某一对象的功能命令,cmdlet可使用"动词-名词"形式的语法:一个动词和一个名词,中间使用连字符连接,例如get-service和start-service。
    2014-09-09

最新评论