在ios开发过程中,音频常常会用到,而音频根据使用场合分为音效和音乐,音效一般只播映1~2秒

  1. ios音效支撑的格局

ios 支撑的音频格局有:aac、alac、he-aac、iLBc、IMA4、Linea PCM、MP3、CAF,其间,aac、alac、he-aac、mp3、caf支撑硬件解码,其他只支撑软件解码, 软件界面由于比较耗电,所以,咱们在开发过程中,常常选用的是caf、mp3

  1. 音频库

AVFoundation.framework

  1. 代码
    // 打开资源
    NSURL* url =[[NSBundle mainBundle]URLForResource:@"m_03" withExtension:@"wav"];
    SystemSoundID soundID;
    AudioServicesCreateSystemSoundID((__bridge CFURLRef)(url), &soundID);
    // 播映音效
    AudioServicesPlaySystemSound(self.soundID);
    // 删除音效
    AudioServicesDisposeSystemSoundID(self.soundID);
  1. 框架

iOS:零碎整理iOS音视频开发API

  1. 加载音乐资源并播映

    AVAudioPlayer* player = musicDict[fileName];
    if (!player) {
        NSURL* url = [[NSBundle mainBundle] URLForResource:fileName withExtension:nil];
        NSCAssert(url != nil, @"fileName not found musics");
        NSError* error;
        player = [[AVAudioPlayer alloc]initWithContentsOfURL:url error:&error];
        if (error) {
            NSLog(@"load music error");
            return;
        }
        [musicDict setObject:player forKey:fileName];
    }
    if (player.isPlaying == NO) {
        [player play];
    }

6.暂停 中止操作

[player pause];// 暂停
[player stop];// 中止
[player isplaying];// 是否在播映

好了,现在能播映音乐了,但咱们在看其他的使用的时分,一般当使用切换到后台的时分也能播映音乐,那这个又是怎么实现的呢?这个只需设置音频的后台播映,具体为:

1> 在后台敞开一个使命

- (void)applicationDidEnterBackground:(UIApplication *)application
{
    // 敞开后台使命,让音乐持续播映
    [application beginBackgroundTaskWithExpirationHandler:nil];
}

2> 设置项目配置文件

iOS:零碎整理iOS音视频开发API

3> 设置音频链接会话,这个首要告知设备怎么处理音频事件的

1234 // 设置音频会话类型````AVAudioSession* session = [AVAudioSession sharedInstance];````[session setCategory:AVAudioSessionCategorySoloAmbient error:``nil``];````[session setActive:``YESerror:``nil``];

这里有很多会话类型,如果想具体了解,可参考:blog.csdn.net/daiyelang/a…

现在应该可以播映音乐了。