Skip to content

About

A fancy Obj-C wrapper for Cocoa System Sound Services

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

576 stars

Watchers

19 watching

Forks

Repository files navigation

JSQSystemSoundPlayer

Build Status Version Status license MIT codecov Platform Carthage compatible

A fancy Obj-C wrapper for Cocoa System Sound Services, for iOS and OS X.

About

This library is a light-weight component to play sound effects in your app. To determine your audio needs, see Best Practices for iOS Audio.

tl;dr

When your sole audio need is to play alerts and user-interface sound effects, use Core Audio’s System Sound Services.

Your sound files must be:

  • No longer than 30 seconds in duration
  • In linear PCM or IMA4 (IMA/ADPCM) format
  • Packaged in a .caf, .aif, or .wav file

If this does not fit your needs, then this library is not for you! See AVAudioPlayer, instead.

screenshot ios     screenshot osx

Usage

JSQSystemSoundPlayer *sharedPlayer = [JSQSystemSoundPlayer sharedPlayer];

// Play a built-in sound
[sharedPlayer playSoundWithSoundID:1000 // new mail sound
                           asAlert:YES
                        completion:^{
                            NSLog(@"Sound finished playing. Executing completion block...");
                        }];

// Play a sound from a file
[sharedPlayer playSoundWithFilename:@"Basso"
                      fileExtension:kJSQSystemSoundTypeAIF
                         completion:^{
                             NSLog(@"Sound finished playing. Executing completion block...");
                         }];

Features

  • Play sound effects and alert sounds with a single line of code
  • "Play" vibration (if available on device)
  • Block-based completion handlers
  • Integration with NSUserDefaults to globally toggle sound effects in your app
  • Efficient memory management
  • Caches sounds (SystemSoundID instances) and purges on memory warning
  • Works with Swift!

Requirements

  • Xcode 9+
  • iOS 9.0+
  • tvOS 9.0+
  • macOS 10.10+

Installation

CocoaPods (recommended)

pod 'JSQSystemSoundPlayer'
github "jessesquires/JSQSystemSoundPlayer"

Documentation

Read the docs. Generated with jazzy. Hosted by GitHub Pages.

Generate

$ ./build_docs.sh

Preview

$ open index.html -a Safari

Contributing

Interested in making contributions to this project? Please review the guides below.

Also, consider sponsoring this project or buying my apps! ✌️

Credits

Created and maintained by @jesse_squires.

License

JSQSystemSoundPlayer is released under an MIT License. See LICENSE for details.

Copyright © 2013-present Jesse Squires.

Please provide attribution, it is greatly appreciated.

About

A fancy Obj-C wrapper for Cocoa System Sound Services

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

576 stars

Watchers

19 watching

Forks

Releases

Sponsor this project

Packages

Used by

Contributors

Languages