Skip to content

Instantly share code, notes, and snippets.

@elfenlaid
Created March 5, 2013 20:11
Show Gist options
  • Save elfenlaid/5093835 to your computer and use it in GitHub Desktop.
Save elfenlaid/5093835 to your computer and use it in GitHub Desktop.
@interface MediaPicker()
@property (nonatomic, retain) MPMediaPickerController *picker;
@end
@implementation PYSMediaPicker
@synthesize picker;
@synthesize delegate;
- (void)dealloc
{
[picker release];
[super dealloc];
}
- (void)presentPicker
{
self.picker =
[[[MPMediaPickerController alloc]
initWithMediaTypes: MPMediaTypeAnyAudio] autorelease];
[picker setDelegate:self];
[picker setAllowsPickingMultipleItems:NO];
picker.prompt = @"Choose sound to process";
[self.delegate.navigationController pushViewController:self.picker animated:YES];
}
- (void)removePicker
{
[self.delegate.navigationController popViewControllerAnimated:NO];
self.picker = nil;
}
- (void)mediaPicker:(MPMediaPickerController *)mediaPicker didPickMediaItems:(MPMediaItemCollection *)mediaItemCollection
{
[self.delegate pickerDidPickMediaItem:mediaItemCollection];
self.picker.delegate = nil;
}
- (void)mediaPickerDidCancel:(MPMediaPickerController *)mediaPicker
{
[self.delegate pickerDidCancel];
self.picker.delegate = nil;
}
@end
@protocol MediaPickerDelegate;
@interface MediaPicker : NSObject<MPMediaPickerControllerDelegate>
@property (nonatomic, assign) id<MediaPickerDelegate> delegate;
- (void)presentPicker;
- (void)removePicker;
@end
@protocol MediaPickerDelegate
- (void)pickerDidPickMediaItem:(MPMediaItemCollection *)mediaItemCollection;
- (void)pickerDidCancel;
- (UINavigationController *)navigationController;
@end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment