Search code examples
objective-ciosparsingwavm4a

Parsing title from m4a or wav?


How I can easily parse the title from a wav or m4a file on iOS(objective-c) ?

Thanks for the solutions.


Solution

  • NSBundle* bundle = [NSBundle mainBundle];
    NSString* path = [bundle bundlePath];
    NSURL * fileURL=[NSURL fileURLWithPath:[NSString stringWithFormat:@"%@/silence.mp3", path]];
    AudioFileTypeID fileTypeHint = kAudioFileMP3Type;
    NSString *fileExtension = [[fileURL path] pathExtension];
    if ([fileExtension isEqual:@"mp3"]||[fileExtension isEqual:@"m4a"])
    {
        AudioFileID fileID  = nil;
        OSStatus err        = noErr;
    
        NSDictionary *piDict = nil;
        UInt32 piDataSize   = sizeof( piDict );
        err = AudioFileGetProperty( fileID, kAudioFilePropertyInfoDictionary, &piDataSize, &piDict );
        if( err != noErr ) {
            [piDict release];
            NSLog( @"AudioFileGetProperty failed for property info dictionary" );
        }
    
        NSString * Album = [piDict objectForKey: 
                            [NSString stringWithUTF8String: kAFInfoDictionary_Album]];
        NSString * Artist = [piDict objectForKey: 
                             [NSString stringWithUTF8String: kAFInfoDictionary_Artist]];
        NSString * Title = [piDict objectForKey: 
                            [NSString stringWithUTF8String: kAFInfoDictionary_Title]];
        NSLog(@"%@",Title);
        NSLog(@"%@",Artist);
        NSLog(@"%@",Album);
    
    }