sounds, images, and text fa 172 intro to mobile app development
TRANSCRIPT
Sounds, Images, and Text
FA 172Intro to Mobile App Development
Agenda
• Sounds– System Sound Services
• Images– Image View and the UIImage class
• Text– Files, parsing, Web access
Sounds
• Reference:– http://www.raywenderlich.com/259/audio-101-fo
r-iphone-developers-playing-audio-programmatically
• Various ways to play sound, depending on format, length, and whether you want sounds played in the background
• For this class, we will use System Sound Services via the AudioToolbox library
Setting up and playing sounds
• Set up– Define sound id
• SystemSoundId _soundId;
– Specify sound file• NSString *file = [[NSBundle mainBundle] pathForResource:
@"soundfile" ofType:@"wav"];• NSURL *url =[NSURL fileURLWithPath:file];
– Associate with sound id• AudioServicesCreateSystemSoundID((CFURLRef) url, &_soundId);
• Play– Play by indicating sound id
• AudioServicesPlaySystemSound(_soundId);
Sounds class
• A Sounds class (Sounds.h, Sounds.m) has been provided that enables sound support– You are welcome to look at the implementation but do not
need to as long as you understand how to invoke the methods• Class methods:
– setSound: associate a sound file to an idNum (int)– play: plays the sound by indicating the idNum
• Make sure to– Include AudioToolbox library in frameworks
(Build Phases, Link Binary with Libraries)– Include sound files in “Supporting Files”
Class methods revisited
• Take note: the methods of the Sounds class are class methods
• .h file (interface) contains method declarations with the + prefix
• When using the class, [Sounds <method>];– e.g.,
[Sounds setSound: 3: @"file”: @"wav"]; [Sounds play: 3];
Images
• Image View– Displays an image or animation (described by
several images)– Placed within a UI View of a View Controller
• Associated image can be assigned either– Through the Xcode environment: through
attributes inspector– Or programmatically, by setting properties or calling
methods on the UIImageView outlet connection
UIImage
• Set image of image view by assigning a UIImage object to the view’s image propertyself.imageView.image =
[UIImage imageNamed:@"x.jpg"];
• Make sure all image files needed are included in the “Supporting Files” area (and added to the project’s target
Animation
• Set up an NSArray of images representing the images describing the animation
• Set two properties of the view– animationImages: the NSArray– animationDuration: number representing the
duration (in seconds) for one animation cycle• Call startAnimating method on the view• Call stopAnimating method to stop animation
Animation Example
NSArray *images = [NSArray arrayWithObjects: [UIImage imageNamed:@"x.jpeg"], [UIImage imageNamed:@"y.jpeg"], [UIImage imageNamed:@"z.jpeg"], nil]; self.iv.animationImages = images; self.iv.animationDuration = 0.5; [self.iv startAnimating];
Exercise
• Create a single view project with three buttons and one image view– Set the image of the view to some default image
• Button 1: changes the image to the another image• Button 2: plays a sound• Button 3: plays a different sound and then runs an
animation• The project requires 2 sounds and at least 4 images
Text
• Demonstrated through a sample project• Text files: read/write text (NSString*) from/to
files• Parsing: from NSString to NSArray• Reading data from the web• To be posted on the website
Summary
• Sounds in an app can be played throughSystems Sound Services using the AudioToolbox library– Other frameworks are available– A Sounds class enabling sound support has been
created for this course to simplify use• Images and animation supported through– UIImageView class– UIImage class