3

「system.windows.media.mediaplayer」メディア プレーヤーを使用してサウンド ファイルのリストを再生しようとしていますが、次のサウンド ファイルをいつ再生するかをメディア プレーヤーに認識させるのに問題があります。

「MediaEnded」イベント ハンドルを使用してサウンド ファイルが終了したことを確認し、次のサウンド ファイルに移動しようとしています。しかし、イベント ハンドルを適切に起動させることができません。どこが間違っているのか教えてもらえますか? これは私が使用しているコードです:

Add-Type -AssemblyName presentationCore 
$mediaplayer=New-Object system.windows.media.mediaplayer
Register-ObjectEvent -InputObject $mediaplayer -SourceIdentifier media -EventName BufferingStarted -Action {write-host "media stopped"}
$mediaPlayer.Open('C:\Windows\Media\chimes.wav')
$mediaplayer.Play()
sleep 3
$mediaPlayer.Open('C:\Windows\Media\chimes.wav')
$mediaplayer.Play()

現時点では、イベント ハンドルを起動するために任意のサウンド ファイルを再生しています。

私を助けてください !

4

1 に答える 1

3
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()
}
于 2013-08-27T21:01:31.167 に答える