ios播放本地声音文件

从一段代码里找到几个片段:

#import <AVFoundation/AVFoundation.h>
#import <AudioToolbox/AudioToolbox.h>

// 加载音效
- (SystemSoundID)loadSound:(NSString *)soundFileName
{
    // 1. 需要指定声音的文件路径,这个方法需要加载不同的音效
    NSString *path = [[NSBundle mainBundle]pathForResource:soundFileName ofType:nil];
    // 2. 将路径字符串转换成url
    NSURL *url = [NSURL fileURLWithPath:path];
    
    // 3. 初始化音效
    // 3.1 url => CFURLRef
    // 3.2 SystemSoundID
    SystemSoundID soundId;
    // url先写个错的,然后让xcode帮我们智能修订,这里的方法不要硬记!
    AudioServicesCreateSystemSoundID((__bridge CFURLRef)(url), &soundId);
    
    return soundId;
}

// 初始化音乐播放器
- (AVAudioPlayer *)loadMusic
{
    // 1 初始化播放器需要指定音乐文件的路径
    NSString *path = [[NSBundle mainBundle]pathForResource:@"背景音乐" ofType:@"caf"];
    // 2 将路径字符串转换成url,从本地读取文件,需要使用fileURL
    NSURL *url = [NSURL fileURLWithPath:path];
    // 3 初始化音频播放器
    AVAudioPlayer *player = [[AVAudioPlayer alloc]initWithContentsOfURL:url error:nil];
    // 4 设置循环播放
    // 设置循环播放的次数
    // 循环次数=0,声音会播放一次
    // 循环次数=1,声音会播放2次
    // 循环次数小于0,会无限循环播放
    [player setNumberOfLoops:-1];
    
    // 5 准备播放
    [player prepareToPlay];
    
    return player;
}

    // 5. 初始化背景音乐播放器
    _backMusicPlayer = [self loadMusic];
    [_backMusicPlayer setVolume:0.5f];
    // 6. 开始播放
    [_backMusicPlayer play];
    
    // 7. 初始化音效
    _winSound = [self loadSound:@"胜利.aiff"];
    _faildSound = [self loadSound:@"失败.aiff"];
    _drewSound = [self loadSound:@"和局.aiff"];
    _clickSound = [self loadSound:@"点击按钮.aiff"];

// 播放音效
        // AudioServicesPlayAlertSound在播放音效的同时会震动
        AudioServicesPlaySystemSound(_drewSound);

从代码中可以看出有两种播放方式:

  1. 系统声音服务(System Sound Services)详细介绍请看这位大神的文章 http://www.cnblogs.com/wayne23/p/3596772.html
  2. AVAudioPlayer音频播放器



你可能感兴趣的:(ios,播放声音)