AVFoundation播放音乐/音效

简单音效处理

  1. 导入"AVFoundation"框架
#import 
  1. 创建URL地址
  2. 系统音效文件 SystemSoundID = UInt32
  3. 创建音效文件 --> URL写完之后,需要转换成CF框架
  4. 播放音效文件
  5. 如果不需要播放了, 需要释放音效所占用的内存
 //2. 创建URL地址
     NSURL *url = [[NSBundle mainBundle] URLForResource:@"XXX.MP3" withExtension:nil];
 //此处导入本地文件,可以从网络获取,但是要在info.plast加入ATS
 //3. 系统音效文件 SystemSoundID = UInt32
    SystemSoundID soundID;
 //4. 创建音效文件 --> URL写完之后,需要转换成CF框架
    AudioServicesCreateSystemSoundID((__bridge CFURLRef _Nonnull)(url), &soundID);
 //5. 播放音效文件
    //5.1不带振动的播放
        AudioServicesPlaySystemSound(soundID);
    //5.2带振动的播放
        AudioServicesPlayAlertSound(soundID);
 //6. 如果不需要播放了, 需要释放音效所占用的内存
    // AudioServicesDisposeSystemSoundID(soundID);
PS:此处释放存在漏洞,是为封装音效工具做准备

AVAudioPlayer播放音乐

  1. 需要使用AVFoundatiaon框架
#import 
  1. 创建音乐播放器
 // 创建音乐播放器
    
    //1. 获取URL路径
    NSURL *url = [[NSBundle mainBundle] URLForResource:@"我爱你你却爱着她.mp3" withExtension:nil];
    
    //2. 创建一个error对象
    NSError *error;
    
    //3. 创建音乐播放器
    self.player = [[AVAudioPlayer alloc] initWithContentsOfURL:url error:&error];
    
    if (error) {
        NSLog(@"有错误产生");
    }
  1. 根据需求, 进行播放/暂停/停止
  • 播放
     1. 准备播放 --> 将音频文件加载到内存中 --> 这句话可以不写 --> play会隐式调用prepareToPlay方法. 但是规范来说, 还是会写上
    [self.player prepareToPlay];   
     2.开始播放
    [self.player play];
  • 暂停
// 暂停播放
//    [self.player pause];
  • 停止播放
// 停止播放
    [self.player stop];   
    // 归零操作 / 时间重置 currentTime--> 秒为单位
    self.player.currentTime = 0;

你可能感兴趣的:(AVFoundation播放音乐/音效)