Powershell用于音频媒体播放和详细信息



我引用了:powershell';system.windows.media.mediaplayer';注册ObjectEvent,用于使用PowerShell处理音频文件。它在文件夹中显示用于播放音频文件的代码。但没有进一步解释或评论它的使用
我想要的是PowerShell,创建一个Windows窗体,带有选择文件对话框、基本图标,用于播放/暂停/停止,并在搜索栏上显示其当前时间状态(剩余时间)。

这里有代码供参考:

Add-Type -AssemblyName PresentationCore 
$_MediaPlayer = New-Object System.Windows.Media.MediaPlayer 
$_MusicFolder = 'C:UsersMaking JESUS ProudMusic'
$_MusicFiles = Get-ChildItem -path $_MusicFolder -include *.mp3 -recurse
$duration = $null
foreach($_file in $_MusicFiles){ 
     "Playing $($_file.BaseName)"
     [uri]$_song = $_file.FullName
     do {
        $_MediaPlayer.Open($_song)
        $_songDuration = $_MediaPlayer.NaturalDuration.TimeSpan.TotalMilliseconds
     }
     until ($_songDuration)
     $_MediaPlayer.Volume = 1
     $_MediaPlayer.Play()
     Start-Sleep -Milliseconds $_songDuration
     $_MediaPlayer.Stop()
     $_MediaPlayer.Close()
}

我已经准备好了GUI部分,但我无法从MediaPlayer类中提取有关其时间表进度的信息,以及暂停/停止/回放音频的事件处理。

课堂文件:

https://msdn.microsoft.com/en-us/library/System.Windows.Media.MediaPlayer%28v=vs.110%29.aspx

关于时间线,我发现了以下三个属性,但我不太了解它们。

MediaPlayer.NaturalDuration   
MediaPlayer.Clock  
MediaPlayer.Position  
Add-Type –assemblyName PresentationFramework
$mp=New-Object System.Windows.Controls.MediaElement
$mp.Source='E:onedriveaudiosong.mp3'
$mp.UnloadedBehavior='Manual'
$mp.Position=New-Object System.TimeSpan(0, 0, 0, 30, 0)
$mp.Volume = 1
$mp.Play()

注意:
只能在打开文件之前设置文件的位置
您不能查找所有文件类型,但可以查找大多数文件类型。

参考:
https://msdn.microsoft.com/en-us/library/ms748248%28v=vs.110%29.aspx

最新更新