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

获取MP3和M4A音乐文件的歌曲信息以及专辑图片--备用的更多相关文章

  1. 【ASP.NET 进阶】获取MP3文件信息并显示专辑图片

    突发奇想,想弄个显示MP3文件信息和专辑图片的小Demo,个人不是大牛,遂百度之,总算搞定,现分享如下. 效果图: GIF效果图: 主要是依靠2个DLL文件:ID3.dll 和 Interop.She ...

  2. Golang获取目录下的文件及目录信息

    一.获取当前目录下的文件或目录信息(不包含多级子目录) func main() {  pwd,_ := os.Getwd() //获取当前目录  //获取文件或目录相关信息  fileInfoList ...

  3. 实现php获取mp3文件元信息如播放时间歌曲作者等

    最近收集到一个php获取mp3文件元信息的类,感觉比较方便.现在分享给大家! 下面是使用方式和测试方式: <?php include_once 'mp3file.class.php'; func ...

  4. C# 获取 mp3文件信息【包括:文件大小、歌曲长度、歌手、专辑】

    C# 获取 mp3文件信息[包括:文件大小.歌曲长度.歌手.专辑] 第一种方式:[代码已验证] // http://bbs.csdn.net/topics/390392612   string fil ...

  5. Python解密网易云音乐缓存文件获取MP3

    前言本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理.作者:GeneralMonkey Python解密网易云音乐缓存文件获取MP3 ...

  6. C# 获取 mp3文件信息

    C# 获取 mp3文件信息[包括:文件大小.歌曲长度.歌手.专辑] 第一种方式:[代码已验证] // http://bbs.csdn.net/topics/390392612   string fil ...

  7. android播放器如何获取音乐文件信息

    转http://blog.csdn.net/hellofeiya/article/details/8464356, android自带的音乐播放器中,在获取音乐文件信息的时候是通过扫描得到相关信息的. ...

  8. windows server 2008 R2服务器无法通过ShellClass获取mp3音乐时长

    我们先看一段代码,获取mp3播放时长: #region GetMediaDetailInfo 获取媒体文件属性信息 /// <summary> /// 获取媒体文件属性信息 /// < ...

  9. iOS - 音乐播放器需要获取音乐文件的一些数据信息(封装获取封面图片的类)

    // // AVMetadataInfo.h // AVMetadata // // Created by Wengrp on 15/10/27. // Copyright © 2015年 Wengr ...

随机推荐

  1. Longest Palindromic Substring——LeetCode

    Given a string S, find the longest palindromic substring in S. You may assume that the maximum lengt ...

  2. 最受欢迎linux命令

    1.   以 root 帐户执行上一条命令 sudo !! 2.  利用 Python 搭建一个简单的 Web 服务器,可通过 http://$HOSTNAME:8000访问    python -m ...

  3. 对MFC 框架的认识

    1.MFC 的概念 微软基础类库(英语:Microsoft Foundation Classes,简称MFC)是一个微软公司提供的类库(class libraries),以C++类的形式封装了Wind ...

  4. Android项目实战--手机卫士18--读取用户的短信内容以及短信备份

    我们今天要说的就是我们手机卫士里面的高级工具里面的短信备份功能啦,其实这个软件备份的功能也很简单,就是把用户的短信读出来,然后写到一个xml或者数据库里面, 但我们这里的是读取到xml里面的. 首先我 ...

  5. 【JavaScript】深入分析JavaScript的关系运算和if语句

    JavaScript的关系运算,没有我原想的那么简单.等终于理清它的运算逻辑之后,我的头大了至少一圈.而if语句的真假判定逻辑本身不难,但要把它和关系运算联系起来,相信你会和我一样,到达崩溃边缘.不信 ...

  6. [转] linux 信号量之SIGNAL

    我们可以使用kill -l查看所有的信号量解释,但是没有看到SIGNAL 0的解释. [root@testdb~]# kill -l 1) SIGHUP 2) SIGINT 3) SIGQUIT 4) ...

  7. Java基础知识强化98:Apache和Tomcat服务器的联系与区别

    1. Apache 和 Tomcat 都是web网络服务器,两者既有联系又有区别,在进行HTML.PHP.JSP.Perl等开发过程中,需要准确掌握其各自特点,选择最佳的服务器配置. Apache是w ...

  8. C语言原码反码补码与位运算.

      目录:     一.机器数和真值     二.原码,反码和补码的基础概念     三.为什么要使用原码,反码和补码     四.原码,补码,反码再深入     五.数据溢出测试     六.位运算 ...

  9. Mounting File Systems

    1.Mounting File Systems Just creating a partition and putting a file system on it is not enough to s ...

  10. JavaScript中几个可以转化为false的值

    1.[0,NaN,“”,null,undefined]都可以直接转化为false,但这几个值不是完全相等的 var arr = [0,"",false,null,undefined ...