JPSVolumeButtonHandler provides an easy block interface to hardware volume buttons on iOS devices. Perfect for camera apps!
JPSVolumeButtonHandler
provides an easy block interface to hardware volume buttons on iOS devices. Perfect for camera apps! Used in JPSImagePickerController
.
Features:
Add: https://github.com/jpsim/JPSVolumeButtonHandler.git
(master
branch) to your “Package Dependencies” in XCode.
Or add: .package(url: "https://github.com/jpsim/JPSVolumeButtonHandler.git", branch: "master")
to your swift package file.
Add pod 'JPSVolumeButtonHandler'
to your Podfile.
Drag the JPSVolumeButtonHandler
folder into your project and link the MediaPlayer and AVFoundation frameworks to your project.
Set your blocks to be run when the volume buttons are pressed:
self.volumeButtonHandler = [JPSVolumeButtonHandler volumeButtonHandlerWithUpBlock:^{
// Volume Up Button Pressed
} downBlock:^{
// Volume Down Button Pressed
}];
To enable/disable the handler:
// Start
[self.volumeButtonHandler startHandler:YES];
// Stop
[self.volumeButtonHandler stopHandler];
To change audio session category (by default AVAudioSessionCategoryPlayAndRecord
):
// Set category
self.volumeButtonHandler.sessionCategory = AVAudioSessionCategoryAmbient;
To change the audio session category options (by default AVAudioSessionCategoryOptionMixWithOthers
):
self.volumeButtonHandler.sessionOptions = AVAudioSessionCategoryOptionAllowBluetooth|AVAudioSessionCategoryOptionMixWithOthers;
Note that not all options are compatible with all category options. See AVAudioSession
documentation for details.
This project is under the MIT license.