UI(三十七)音效、音频、录音
*1、播放
(1)音效播放
《1》功能介绍:播放比较短的音音效,常用于做系统提示音 使用到的框架(AudioToolBox)
《2》框架介绍
1、SystemSoundID
2、AudioServicesCreateSystemSoundID
3、AudioServicesPlaySystemSound
4、AudioServicesPlayAlertSound
《3》使用步骤
0、导入系统框架 #import
1、声明声音的ID 靠声音的ID来区分是哪一个音效
2、创建播放声音的服务 - 告诉系统有一个可以使用的soundID
(1、声音文件的路径 2、声音的ID)
3、播放声音 - soundID
(2)音频播放
《1》功能介绍-播放比较长的音乐
《2》框架介绍
(1)AVAudioPlayer
(2)初始化
<1>
<2>
<3>***必须声明全局变量、属性的音乐播放对象才可以播放
<4>在退出播放页面的时候一定要把播放对象置空,同时把delegate置空
(3)属性
[audioPlayer play];开始
[audioPlayer pause];暂停
[audioPlayer stop];停止
[audioPlayer prepareToPlay]; 预播放
[audioPlayer playAtTime:5];播放到5秒
initWithContentsOfURL 初始化
audioPlayer.numberOfChannels 获取当前声道
audioPlayer.duration 获得播放音频的时间
audioPlayer.pan = -1.0 设置左右声道 -1.0左 0.0中间 1.0右
audioPlayer.volume = 1.0 设置音量 范围:0.0-1.0
设置速率 必须设置enableRate为YES才能设置速率
audioPlayer.enableRate = YES;
audioPlayer.rate = 0.5 速率:0.5一半的速度 1.0普通2.0双倍
//获得峰值 必须设置meteringEnabled为YES
audioPlayer.meteringEnabled = YES;
[audioPlayer updateMeters] 更新峰值
[audioPlayer peakPowerForChannel:2] 获得当前峰值
[audioPlayer averagePowerForChannel:2]获得平均峰值
//设置播放次数 设置负数是无线循环 0是一次 1是两次...
audioPlayer.numberOfLoops = 0;
audioPlayer.delegate = self;代理
- (void)audioPlayerDidFinishPlaying:(AVAudioPlayer *)player successfully:(BOOL)flag 播放完成
- (void)audioPlayerDecodeErrorDidOccur:(AVAudioPlayer *)player error:(NSError * __nullable)error 解码失败的时候调用
- (void)audioPlayerBeginInterruption:(AVAudioPlayer *)player 被打扰 开始中断的时候调用
- (void)audioPlayerEndInterruption:(AVAudioPlayer *)player withOptions:(NSUInteger)flags 中断结束时候调用78+44vxz
(4)使用步骤
<0>导入#import
<1>资源文件路径
<2>初始化播放器
<3>设置播放
<4>预播放
<5>播放
*2、录音
(1)使用框架
(2)相关类介绍:
《1》
<1>AVNumberOfChannelsKey 通道数
<2>AVSampleRateKey 采样率 44100
<3>AVLinearPCMBitDepthKey 比特率 16、32
<4>AVEncoderAudioQualityKey 质量
<5>AVEncoderBitRateKey 比特采样率 128000
()prepareToRecord 预录音
(3)使用
《1》初始化
《2》开始录音
《3》停止录音