You must have autoStart = true if playback starts as soon as a filename is assigned.
A technique for starting multiple players which seems to work (I'll claim nothing more than that) is
1) Start a player
2) Wait until the playing state is achieved
3) Repeat 1 and 2 for other players
4) Pause all players
5) Set the playback position of all players to 0
6) Restart play for all
Steps 4 and 6 are probably not required as synchronisation looks the same with them removed.
Private Sub Start(filename As String)
player1.settings.autoStart = False
player1.URL = filename
player2.settings.autoStart = False
player2.URL = filename
player1.Ctlcontrols.play()
While player1.playState <> WMPLib.WMPPlayState.wmppsPlaying
Application.DoEvents()
System.Threading.Thread.Sleep(20)
End While
player2.Ctlcontrols.play()
While player2.playState <> WMPLib.WMPPlayState.wmppsPlaying
Application.DoEvents()
System.Threading.Thread.Sleep(20)
End While
player1.Ctlcontrols.pause()
player2.Ctlcontrols.pause()
player1.Ctlcontrols.currentPosition = 0.0
player2.Ctlcontrols.currentPosition = 0.0
player1.Ctlcontrols.play()
player2.Ctlcontrols.play()
End Sub
You'll have to excuse the use of Application.DoEvents and the Sleep in this "proof of concept" code!
Alan.