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)