使用Windows Media Player播放视频的PowerShell脚本

时间:2016-09-08 10:50:00

标签: powershell media-player

我要求通过Windows Media Player运行视频。并跟踪播放的持续时间。 假设我在5秒内关闭视频,它应该给出持续时间5.下面是我写的脚本。但这有问题。由于视频没有启动,我也无法启动应用程序。我只能在这里播放音频。

Add-Type -AssemblyName presentationCore
 $filepath = [uri] "C:\Temp\test\Wildlife.wmv"
  $wmplayer = New-Object System.Windows.Media.MediaPlayer
 $wmplayer.Open($filepath)
 Start-Sleep 2 # This allows the $wmplayer time to load the audio file
 $duration = $wmplayer.NaturalDuration.TimeSpan.Seconds
 $wmplayer.Play()
 Start-Sleep $duration
 $wmplayer.Stop()
 $wmplayer.Close()
 Write-Host $duration

请帮忙...... 问候, Suman Rout

1 个答案:

答案 0 :(得分:1)

您需要创建一个显示的表单,然后创建一个VideoDrawing,然后创建一个DrawingBrush,然后将其应用为表单某些部分的背景。根据我的理解,MediaElement更易于使用 - 但无论您是否在此处启动媒体播放器,您都在使用Windows Media对象而无需创建表单来显示它们。

如果您只想打开视频并关闭它,请尝试启动Windows Media Player应用程序。我使用了你的代码并做了类似你可能想要的事情:

Add-Type -AssemblyName presentationCore
$filepath = "C:\Temp\test\Wildlife.wmv"

#Here we use your code to get the duration of the video
$wmplayer = New-Object System.Windows.Media.MediaPlayer
$wmplayer.Open($filepath)
Start-Sleep 2 
$duration = $wmplayer.NaturalDuration.TimeSpan.Seconds
$wmplayer.Close()

#Here we just open media player and play the file, with an extra second for it to start playing
$proc = Start-process -FilePath wmplayer.exe -ArgumentList $filepath -PassThru
Start-Sleep ($duration + 1)

#Here we kill the media player
Stop-Process $proc.Id -force

Write-Host $duration