This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Setup | |
_composition = [AVMutableComposition composition]; | |
_audioMixValues = [[NSMutableDictionary alloc] initWithCapacity:0]; | |
_audioMixTrackIDs = [[NSMutableDictionary alloc] initWithCapacity:0]; | |
// Insert the audio tracks into our composition | |
NSArray* tracks = [NSArray arrayWithObjects:@"track1", @"track2", @"track3", @"track4", nil]; | |
NSString* audioFileType = @"wav"; | |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context | |
{ | |
if ([keyPath isEqualToString:@"status"]) | |
{ | |
if (AVPlayerItemStatusReadyToPlay == _player.currentItem.status) | |
{ | |
[_player play]; | |
} | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Action for our 4 sliders | |
- (IBAction)mix:(id)sender | |
{ | |
UISlider* slider = (UISlider*)sender; | |
[self setVolume:slider.value | |
forTrack:[NSString stringWithFormat:@"track%d", slider.tag]]; | |
[self applyAudioMix]; | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Set the volumne (0.0 - 1.0) for the given track | |
- (void)setVolume:(float)volume forTrack:(NSString*)audioTrackName | |
{ | |
[_audioMixValues setValue:[NSNumber numberWithFloat:volume] forKey:audioTrackName]; | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Build and apply an audio mix using our volume values | |
- (void)applyAudioMix | |
{ | |
AVMutableAudioMix* mix = [AVMutableAudioMix audioMix]; | |
NSMutableArray* inputParameters = [[NSMutableArray alloc] initWithCapacity:0]; | |
[_audioMixTrackIDs enumerateKeysAndObjectsUsingBlock:^(id key, id obj, BOOL*stop) { | |
AVAssetTrack* track = [self trackWithId:(CMPersistentTrackID)[(NSNumber*)obj integerValue]]; | |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
@implementation CBCosmDatastream | |
- (id)initWithAttributes:(NSDictionary*)attributes | |
{ | |
self = [super init]; | |
if (self) | |
{ | |
if (!attributes) | |
{ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
@implementation CBCosmDatastream | |
#pragma mark - Mantle | |
+ (NSDictionary *)externalRepresentationKeyPathsByPropertyKey | |
{ | |
return [super.externalRepresentationKeyPathsByPropertyKey mtl_dictionaryByAddingEntriesFromDictionary:@{ | |
@"datastreamId": @"id", | |
@"updated": @"at", | |
@"value": @"current_value", |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
[@3 times:^{ | |
NSLog(@"Hello World!"); | |
}]; | |
// Hello World! | |
// Hello World! | |
// Hello World! |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
NSArray *cars = [@"Testarossa", @"F50", @"F458 Italia"]; | |
// or NSSet *cars = [NSSet setWithObjects:@"Testarossa", @"F50", @"F458 Italia", nil]; | |
[cars map:^id(id car){ | |
return @([[car substringToIndex:1] isEqualToString:@"F"]); | |
}]; | |
// NO (Testarossa) | |
// YES (F50) | |
// YES (F458 Italia) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions | |
{ | |
fDebugger = [PDDebugger defaultInstance]; | |
[fDebugger enableNetworkTrafficDebugging]; | |
[fDebugger forwardAllNetworkTraffic]; | |
[fDebugger enableCoreDataDebugging]; | |
[fDebugger addManagedObjectContext:self.managedObjectContext withName:@"Popular on 500px"]; | |
OlderNewer