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); 
             
        }

  • 相关阅读:
    JavaSE学习(二):进制转换—数据类型转换—Java运算符
    JavaSE学习(五):数组及其基础操作
    iOS工作中的经验总结—马甲包审核以及常见审核问题!!!(干货)
    月薪过万不是梦!2018年最全/最新Python面试题(整理汇总)
    Python:爬虫技巧总结!
    【转】maven学习(下) 利用Profile构建不同环境的部署包
    【转】maven学习(上) 基本入门用法
    Java从控制台获取数据的方法
    【转】LinkedHashMap实现由插入集合的顺序输出
    浅谈String/StringBuffer/StringBuilder字符串的拼接
  • 原文地址:https://www.cnblogs.com/isItOk/p/5215463.html
Copyright © 2011-2022 走看看