zoukankan      html  css  js  c++  java
  • 获取MP3和M4A音乐文件的歌曲信息以及专辑图片--备用

    NSBundle* bundle = [NSBundle mainBundle]; 
        NSString* path = [bundle bundlePath]; 
        NSURL * fileURL=[NSURL fileURLWithPath:[NSString stringWithFormat:@"%@/akon、be - you - with.mp3", path]]; 
        AudioFileTypeID fileTypeHint = kAudioFileMP3Type; 
        NSString *fileExtension = [[fileURL path] pathExtension]; 
        if ([fileExtension isEqual:@"mp3"]||[fileExtension isEqual:@"m4a"]) 
        { 
            AudioFileID fileID  = nil; 
            OSStatus err        = noErr; 
             
            err = AudioFileOpenURL( (CFURLRef) fileURL, kAudioFileReadPermission, 0, &fileID ); 
            if( err != noErr ) { 
                NSLog( @"AudioFileOpenURL failed" ); 
            } 
            UInt32 id3DataSize  = 0; 
            err = AudioFileGetPropertyInfo( fileID,   kAudioFilePropertyID3Tag, &id3DataSize, NULL ); 
             
            if( err != noErr ) { 
                NSLog( @"AudioFileGetPropertyInfo failed for ID3 tag" ); 
            } 
            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" ); 
            } 
            CFDataRef AlbumPic= nil; 
            UInt32 picDataSize = sizeof(picDataSize); 
            err =AudioFileGetProperty( fileID,   kAudioFilePropertyAlbumArtwork, &picDataSize, &AlbumPic); 
            if( err != noErr ) { 
                NSLog( @"Get picture failed" ); 
            } 
            NSData* imagedata= (NSData*)AlbumPic;  
            UIImage* image=[[UIImage alloc]initWithData:imagedata]; 
            imageView.image=image; 
            NSString * Album = [(NSDictionary*)piDict objectForKey:  
                                [NSString stringWithUTF8String: kAFInfoDictionary_Album]]; 
            NSString * Artist = [(NSDictionary*)piDict objectForKey:  
                                 [NSString stringWithUTF8String: kAFInfoDictionary_Artist]]; 
            NSString * Title = [(NSDictionary*)piDict objectForKey:  
                                [NSString stringWithUTF8String: kAFInfoDictionary_Title]]; 
            NSLog(@"%@",Title); 
             
            NSLog(@"%@",Artist); 
             
            NSLog(@"%@",Album); 
             
        }

  • 相关阅读:
    HDU1565_方格取数(1)
    HDU3046_Pleasant sheep and big big wolf
    HDU4183_Pahom on Water
    「zoj2314」Reactor Cooling (无源汇上下界可行流)
    [ACM-ICPC 2018 沈阳网络赛] G. Spare Tire (思维+容斥)
    [ACM-ICPC 2018 沈阳网络赛] D. Made In Heaven (k短路模板)
    lct,半平面交,线性基,k短路
    P3950 部落冲突 (LCT暴力)
    P4219 [BJOI2014]大融合 ( LCT维护虚实子树size )
    P3203 [HNOI2010]弹飞绵羊(LCT维护链的size + 思维)
  • 原文地址:https://www.cnblogs.com/isItOk/p/5215463.html
Copyright © 2011-2022 走看看