00001 #!/usr/bin/env python 00002 00003 #*********************************************************** 00004 #* Software License Agreement (BSD License) 00005 #* 00006 #* Copyright (c) 2009, Willow Garage, Inc. 00007 #* All rights reserved. 00008 #* 00009 #* Redistribution and use in source and binary forms, with or without 00010 #* modification, are permitted provided that the following conditions 00011 #* are met: 00012 #* 00013 #* * Redistributions of source code must retain the above copyright 00014 #* notice, this list of conditions and the following disclaimer. 00015 #* * Redistributions in binary form must reproduce the above 00016 #* copyright notice, this list of conditions and the following 00017 #* disclaimer in the documentation and/or other materials provided 00018 #* with the distribution. 00019 #* * Neither the name of the Willow Garage nor the names of its 00020 #* contributors may be used to endorse or promote products derived 00021 #* from this software without specific prior written permission. 00022 #* 00023 #* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 00024 #* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 00025 #* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 00026 #* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 00027 #* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 00028 #* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 00029 #* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 00030 #* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 00031 #* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 00032 #* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 00033 #* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 00034 #* POSSIBILITY OF SUCH DAMAGE. 00035 #*********************************************************** 00036 00037 # Author: Blaise Gassend 00038 00039 import roslib; roslib.load_manifest('sound_play') 00040 import rospy, os, sys 00041 from sound_play.msg import SoundRequest 00042 00043 from sound_play.libsoundplay import SoundClient 00044 00045 def sleep(t): 00046 try: 00047 rospy.sleep(t) 00048 except: 00049 pass 00050 00051 if __name__ == '__main__': 00052 rospy.init_node('soundplay_test', anonymous = True) 00053 soundhandle = SoundClient() 00054 00055 rospy.sleep(1) 00056 00057 soundhandle.stopAll() 00058 00059 print "This script will run continuously until you hit CTRL+C, testing various sound_node sound types." 00060 00061 print 00062 #print 'Try to play wave files that do not exist.' 00063 #soundhandle.playWave('17') 00064 #soundhandle.playWave('dummy') 00065 00066 #print 'say' 00067 #soundhandle.say('Hello world!') 00068 #sleep(3) 00069 # 00070 print 'wave' 00071 soundhandle.playWave('say-beep.wav') 00072 sleep(2) 00073 00074 print 'plugging' 00075 soundhandle.play(SoundRequest.NEEDS_PLUGGING) 00076 sleep(2) 00077 00078 print 'unplugging' 00079 soundhandle.play(SoundRequest.NEEDS_UNPLUGGING) 00080 sleep(2) 00081 00082 print 'plugging badly' 00083 soundhandle.play(SoundRequest.NEEDS_PLUGGING_BADLY) 00084 sleep(2) 00085 00086 print 'unplugging badly' 00087 soundhandle.play(SoundRequest.NEEDS_UNPLUGGING_BADLY) 00088 sleep(2) 00089 00090 s1 = soundhandle.builtinSound(SoundRequest.NEEDS_UNPLUGGING_BADLY) 00091 s2 = soundhandle.waveSound("say-beep.wav") 00092 s3 = soundhandle.voiceSound("Testing the new A P I") 00093 00094 print "New API start voice" 00095 s3.repeat() 00096 sleep(3) 00097 00098 print "New API wave" 00099 s2.play() 00100 sleep(2) 00101 00102 print "New API builtin" 00103 s1.play() 00104 sleep(2) 00105 00106 print "New API stop" 00107 s3.stop()