We just did something like this. Created a quad with a video material that was set to play once. No auto start. The Material was published to be changed.
In the scene director, create an animation controller was as long as the longest material would be, a pause event at the beginning and a script event right after.
The script says the following:
dim mat as xpMaterial
dim quad as xpBaseObject
Scene.GetObjectByName("NameOfQuadObject", quad)
quad.GetMaterial(0, mat)
mat.play()
It re-gets the material each time it is set online.
#XPression