iOS:零碎整理iOS音视频开发API
在ios开发过程中,音频经常会用到,而音频根据使用场合分为音效和音乐,音效一般只播放1~2秒
ios音效支持的格式: ios 支持的音频格式有:aac、alac、he-aac、iLBc、IMA4、Linea PCM、MP3、CAF,其中,aac、alac、he-aac、mp3、caf支持硬件解码,其他只支持软件解码, 软件界面因为比较耗电,所以,我们在开发过程中,经常采用的是caf、mp3
音频库: AVFoundation.framework
代码
// 打开资源
NSURL* url =[[NSBundle mainBundle]URLForResource:@"m_03" withExtension:@"wav"];
SystemSoundID soundID;
AudioServicesCreateSystemSoundID((__bridge CFURLRef)(url), &soundID);
// 播放音效
AudioServicesPlaySystemSound(self.soundID);
// 删除音效
AudioServicesDisposeSystemSoundID(self.soundID);
- 框架
加载音乐资源并播放
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];
}
暂停 停止操作
[player pause];// 暂停
[player stop];// 停止
[player isplaying];// 是否在播放
好了,现在能播放音乐了,但我们在看其他的应用的时候,一般当应用切换到后台的时候也能播放音乐,那这个又是如何实现的呢?这个只要设置音频的后台播放,具体为:
1> 在后台开启一个任务
- (void)applicationDidEnterBackground:(UIApplication *)application
{
// 开启后台任务,让音乐继续播放
[application beginBackgroundTaskWithExpirationHandler:nil];
}
2> 设置项目配置文件
3> 设置音频链接会话,这个主要告诉设备如何处理音频事件的
1234// 设置音频会话类型`` ``AVAudioSession* session = [AVAudioSession sharedInstance];`` ``[session setCategory:AVAudioSessionCategorySoloAmbient error:``nil``];`` ``[session setActive:``YES error:``nil``];
这里有很多会话类型,如果想详细了解,可参考:blog.csdn.net/daiyelang/a…
现在应该可以播放音乐了。
作者:会飞的金鱼
链接:https://juejin.cn/post/7238110426147373112
来源:稀土掘金
链接:https://juejin.cn/post/7238110426147373112
来源:稀土掘金