Join John Nastos for an in-depth discussion in this video What you should know before watching this course, part of Creating Audio Apps for iOS.
- This course assumes a beginning to intermediate level knowledge of Objective-C. You should definitely be comfortable with the basics of creating and defining objects and in particular, view controllers. You should know how to create instance variables and properties on those objects as well as static variables. You should also be somewhat familiar with arc and retain cycles. Although the majority of the code in the examples is in Objective-C, three out of four audio API's discussed in the course are based on C. This course doesn't assume any extra knowledge of C, besides what you already know and can infer from Objective-C being a super set of the C language.
There are some general programming concepts that aren't language specific that it would be helpful to know about, such as pointers, memory addresses, buffers, call back functions, etc. If you have a good grasp of Objective-C and limited C knowledge, you probable are familiar enough with all of these concepts, but if either language is new to you, these programming concepts may be new as well. This course also assumes a basic working knowledge of Xcode, including working with storyboards to set up basic interface elements. You should also understand how to connect outlets from the interface elements to your code.
The video examples are recorded using Xcode 6.4 and IOS 8.4. Lastly, since this course deals with audio, it would be a good idea, although not absolutely required to have some understanding of basic audio file formats, especially linear PCM formats and how they're encoded. See the Wikipedia article on audio file formats for more information.
- Playing sounds with System Sound Services
- Setting up audio sessions
- Playing sounds with AVFoundation and AVAudioPlayer/AVAudioRecorder
- Recording audio with an audio input queue
- Playing back audio with an audio output queue
- Setting up audio units
- Changing input and output levels
- Responding to events
- Working with third-party frameworks