我使用PowerShell引用了powershell 'system.windows.media.mediaplayer' Register-ObjectEvent来处理音频文件。它显示用于播放音频文件的代码。但没有进一步解释或评论其使用。
我想要的是PowerShell,创建一个Windows窗体,带有选择文件对话框,基本图标,用于播放/暂停/停止,以及显示其当前时间状态,(在搜索栏上剩余多少分钟,剩余时间)。
以下是供参考的代码:
Add-Type -AssemblyName PresentationCore
$_MediaPlayer = New-Object System.Windows.Media.MediaPlayer
$_MusicFolder = 'C:\Users\Making JESUS Proud\Music'
$_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
答案 0 :(得分:0)
Add-Type –assemblyName PresentationFramework
$mp=New-Object System.Windows.Controls.MediaElement
$mp.Source='E:\onedrive\audio\song.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