IQMediaPickerController
Audio Image Video Picker Controller
Install / Use
/learn @hackiftekhar/IQMediaPickerControllerREADME
IQMediaPickerController allows user to capture Videos, Images and Audio using AVFoundation framework. It also allows user to pick Videos, Images and Audio from the iPhone photo and media library. IQMediaPickerController contains 3 library IQMediaCaptureController, IQAssetsPickerController & IQAudioPickerController. All libraries are separate from the others, so if you want to integrate any one of them, you can copy only required library without copying others.
Key Features
- Contains 3 library allows to pick video, photo, audio type of data
- Can capture/record supported data and can pick from photo and audio library as well
- Can record multiple type of data at one shoot
- Can pick or capture/record multiple files at once
- Can limit length of media while recording
IQMediaCaptureController
IQMediaCaptureController is used to capture multiple images, videos and audio.

IQAssetsPickerController
IQAssetsPickerController is used to pick multiple images & videos from the iPhone photo gallery.
[
]
IQAudioPickerController
IQAudioPickerController is used to pick multiple audio files from the iPhone music library.
[
]
Installation
CocoaPods:-
IQMediaPickerController:- IQMediaPickerController is available through CocoaPods, to install it simply add the following line to your Podfile:
pod 'IQMediaPickerController'
Carthage
Carthage is a decentralized dependency manager that builds your dependencies and provides you with binary frameworks.
You can install Carthage with Homebrew using the following command:
$ brew update
$ brew install carthage
To integrate IQMediaPickerController into your Xcode project using Carthage, specify it in your Cartfile:
github "hackiftekhar/IQMediaPickerController"
Run carthage to build the frameworks and drag IQMediaPickerController.framework into your Xcode project.
Source Code:-
Just drag and drop IQMediaPickerController directory to your project. That's it.
Example Usage
#import <IQMediaPickerController/IQMediaPickerController.h>
@interface ViewController ()<IQMediaPickerControllerDelegate>
@end
@implementation ViewController
{
IQMediaPickerSelection *selectedMedias;
}
-(void)showMediaPicker
{
IQMediaPickerController *controller = [[IQMediaPickerController alloc] init];
controller.delegate = self;
//Set additional settings if you would like to
//[controller setSourceType:IQMediaPickerControllerSourceTypeCameraMicrophone];//or IQMediaPickerControllerSourceTypeLibrary
//[controller setMediaTypes:@[@(PHAssetMediaTypeAudio),@(PHAssetMediaTypeVideo),@(PHAssetMediaTypeImage)]];
//controller.captureDevice = AVCaptureDevicePositionBack;//or AVCaptureDevicePositionFront
//controller.allowsPickingMultipleItems = YES;//or NO
//controller.allowedVideoQualities = @[@(AVCaptureSessionPreset1920x1080),@(AVCaptureSessionPresetHigh)];
[self presentViewController:controller animated:YES completion:nil];
}
-(void)mediaPickerController:(IQMediaPickerController *)controller didFinishMedias:(IQMediaPickerSelection *)selection
{
NSLog(@"Info: %@",selection); //Here you'll get the information about captured or picked assets
selectedMedias = selection;
[self.tableView reloadData];
}
- (void)mediaPickerControllerDidCancel:(IQMediaPickerController *)controller;
{
}
@end
LICENSE
Distributed under the MIT License.
Contributions
Any contribution is more than welcome! You can contribute through pull requests and issues on GitHub.
Author
If you wish to contact me, email at: hack.iftekhar@gmail.com
Related Skills
docs-writer
99.6k`docs-writer` skill instructions As an expert technical writer and editor for the Gemini CLI project, you produce accurate, clear, and consistent documentation. When asked to write, edit, or revie
model-usage
342.0kUse CodexBar CLI local cost usage to summarize per-model usage for Codex or Claude, including the current (most recent) model or a full model breakdown. Trigger when asked for model-level usage/cost data from codexbar, or when you need a scriptable per-model summary from codexbar cost JSON.
arscontexta
2.9kClaude Code plugin that generates individualized knowledge systems from conversation. You describe how you think and work, have a conversation and get a complete second brain as markdown files you own.
cursor-agent-tracking
134A repository that provides a structured system for maintaining context and tracking changes in Cursor's AGENT mode conversations through template files, enabling better continuity and organization of AI interactions.
