View Single Post
  #4  
Old 08-30-2011, 06:54 PM
Jeff Jeff is offline
WorldViz Team Member
 
Join Date: Aug 2008
Posts: 2,471
You could use a task function to play audio and stop if after the action is done:
Code:
import viz
import vizact
import viztask
viz.go()

avatar = viz.addAvatar('vcc_male.cfg',pos=[0,0,5],euler=[180,0,0])
avatar.state(1)
action = vizact.animation(3)

audio = viz.addAudio('jfk.wav',loop=1)

def animationTask():
	
	while True:
		yield viztask.waitKeyDown(' ')
		audio.play()
		yield viztask.runAction(avatar,action)
		audio.stop()	

viztask.schedule(animationTask())
If the sound is attached to the avatar you could use a sequence of actions:
Code:
import viz
import vizact
viz.go()

avatar = viz.addAvatar('vcc_male.cfg',pos=[0,0,5],euler=[180,0,0])
avatar.state(1)

startSound = vizact.method.playsound('jfk.wav',viz.LOOP)
action = vizact.animation(3)
stopSound = vizact.method.playsound('jfk.wav',viz.STOP)

actionSequence = vizact.sequence(startSound,action,stopSound)

vizact.onkeydown(' ',avatar.addAction,actionSequence)
Reply With Quote