Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on May 1st, 2012  |  syntax: None  |  size: 1.31 KB  |  hits: 26  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. Get tags from M4A file
  2. AudioFileID fileID  = nil;
  3.     OSStatus err        = noErr;
  4.  
  5.     err = AudioFileOpenURL( (CFURLRef) fileURL, kAudioFileReadPermission, 0, &fileID );
  6.     if( err != noErr ) {
  7.         NSLog( @"AudioFileOpenURL failed" );
  8.         return nil;
  9.     }
  10.  
  11.     UInt32 id3DataSize  = 0;
  12.     char * rawID3Tag    = NULL;
  13.  
  14.     err = AudioFileGetPropertyInfo( fileID, kAudioFilePropertyID3Tag, &id3DataSize, NULL );
  15.     if( err != noErr ) {
  16.         NSLog( @"AudioFileGetPropertyInfo failed for ID3 tag" );
  17.         return nil;
  18.     }
  19.     //NSLog( @"id3 data size is %d bytes", id3DataSize );
  20.  
  21.     rawID3Tag = (char *) malloc( id3DataSize );
  22.     if( rawID3Tag == NULL ) {
  23.         NSLog( @"could not allocate %d bytes of memory for ID3 tag", id3DataSize );
  24.         return nil;
  25.     }
  26.  
  27.     err = AudioFileGetProperty( fileID, kAudioFilePropertyID3Tag, &id3DataSize, rawID3Tag );
  28.     if( err != noErr ) {
  29.         NSLog( @"AudioFileGetProperty failed for ID3 tag" );
  30.         return nil;
  31.     }
  32.  
  33.  
  34.     CFDictionaryRef piDict = nil;
  35.     UInt32 piDataSize   = sizeof( piDict );
  36.  
  37.     err = AudioFileGetProperty( fileID, kAudioFilePropertyInfoDictionary, &piDataSize, &piDict );
  38.     if( err != noErr ) {
  39.         NSLog( @"AudioFileGetProperty failed for property info dictionary" );
  40.         return nil;
  41.     }
  42.  
  43.  
  44.  
  45.     return (NSDictionary*)piDict;