iOS获取本地音乐文件

iOS 码拜 8年前 (2016-03-22) 1605次浏览
要做一个音乐播放器,主要在不联网的情况下使用,就是获取本地音乐文件这一块不了解,求关键代码;那种根据音乐名和音乐格式获得文件的不要,假如有现成的demo更棒,谢谢!
解决方案

10

// .h
#import <UIKit/UIKit.h>
#import <AVFoundation/AVFoundation.h>
@interface eyeMusicVC : UIViewController
{
    AVAudioPlayer *myBackMusic;
}
//.m
    //初始化音乐
    //创建音乐文件路径
    NSString *musicFilePath = [[NSBundle mainBundle] pathForResource:@"myMusic" ofType:@"mp3"];
    
    //判断文件能否存在
    if ([[NSFileManager defaultManager] fileExistsAtPath:musicFilePath])
    {
        NSURL *musicURL = [NSURL fileURLWithPath:musicFilePath];
        NSError *myError = nil;
        //创建播放器
        myBackMusic = [[AVAudioPlayer alloc] initWithContentsOfURL:musicURL error:&myError];
        if (myBackMusic == nil)
        {
            NSLog(@"error === %@",[myError description]);
        }
        [myBackMusic setVolume:1];   //设置音量大小
        myBackMusic.numberOfLoops = -1;//设置音乐播放次数  -1为一直循环
        [myBackMusic prepareToPlay];
    }
    
    //设置锁屏仍能继续播放
    [[AVAudioSession sharedInstance] setCategory: AVAudioSessionCategoryPlayback error:nil];
    [[AVAudioSession sharedInstance] setActive: YES error: nil];

[myBackMusic play];       //播放
[myBackMusic pause];    //暂停

30

- (void) QueryAllMusic
{
    MPMediaQuery *everything = [[MPMediaQuery alloc] init];
    NSLog(@"Logging items from a generic query...");
    NSArray *itemsFromGenericQuery = [everything items];
    NSLog(@"count = %lu", (unsigned long)itemsFromGenericQuery.count);
    for (MPMediaItem *song in itemsFromGenericQuery)
    {
        NSString *songTitle = [song valueForProperty: MPMediaItemPropertyTitle];
        NSString *songArtist = [song valueForProperty:MPMediaItemPropertyArtist];
        NSLog (@"Title:%@, Aritist:%@", songTitle, songArtist);
    }
}

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明iOS获取本地音乐文件
喜欢 (0)
[1034331897@qq.com]
分享 (0)