音量又称响度、音强,是指人耳对所听到的声音大小强弱的主观感觉,其客观评价尺度是声音的振幅大小。在iOS 9音频应用的应用中,常常会出现播放的音乐音量过大或者太小。此时iOS 9音频应用开发者可使用AVAudioPlayer类中的volume属性对音频文件的音量进行设置。其语法形式以下:ios
var volume: Floatgit
其中,该属性设置的值是浮点类型,范围在0.0到1.0之间。当设置的值为0.0时,表示静音;当设置的为为1.0时,表示最大音量。swift
注意:若是开发者想要让耳机系统发挥出最佳状态,谨记把音量调到最合适的水平,若是你对现场真实的音量不熟悉,那么就多找机会去听现场!ide
【示例2-4】如下将以第一个实例为基础,实现音量的调节。具体的操做步骤以下:spa
1.显示更多设置项.net
(1)将主视图中的Bar Button Item控件与动做showMoreSettingsView进行关联。设计
(2)打开ViewController.swift文件,编写代码,实现显示更多设置项,代码以下:orm
@IBAction func showMoreSettingsView(sender: AnyObject) {教程
UIView.beginAnimations("", context: nil)开发
UIView.setAnimationDuration(2)
moreSettingsView.hidden=false
UIView.commitAnimations()
}
2.ios9设置音量
(1)将主视图中的Volume Slider与插座变量volumeSlider进行关联。
(2)将主视图中的Volume Slider与动做setVolume进行关联。
(3)打开ViewController.swift文件,编写代码,首先须要在viewDidLoad()方法中添加一行代码,实现对音量的设置,这个音量是初始音量,代码以下:
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
moreSettingsView.hidden=true
let path=NSBundle.mainBundle().pathForResource("Liekkas", ofType: "mp3")
……
audioEffect?.prepareToPlay()
audioEffect?.volume=volumeSlider.value //设置音量大小
}
(4)在ViewController.swift文件中的setVolume()动做编写代码,实现经过滑块调节音频大小的功能。代码以下:
@IBAction func setVolume(sender: AnyObject) {
audioEffect?.volume=volumeSlider.value
self.performSelector(("hideMoreSettingsView"), withObject: self, afterDelay: 3)
}
//隐藏更多设置项界面
func hideMoreSettingsView(){
moreSettingsView.hidden=true
}
此时运行程序,在模拟器界面中轻拍播放按钮,此时音频文件就会开始播放,当开发者轻拍导航栏中的更多按钮后,会弹出更多设置项的界面,如图2.26所示。当开发者能够滑动滑块来控件音量的大小。
图2.26 设置音量
为了让声音能够还原真实的效果,因此有了声道的产生。声道是指声音在录制或播放时在不一样空间位置采集或回放的相互独立的音频信号。经过声道,开发人员能够调整声音的强弱以及延迟模拟各类真实的声音效果。通常状况下声音在录制时采用设备的不一样,能够分为单声道、立体声、3D环绕声、四声环绕、5.1声道和7.1声道。
1.单声道
所谓的单声道,就是声音只由一只音箱产生,听众能够很明显地听出声音的来源就是音箱所摆放的位置,其自己的表现力较为平淡;当经过两个扬声器回放单声道信息的时候,咱们能够明显感受到声音是从两个音箱正中间传递到咱们耳朵里的。这种缺少位置感的录制方式用如今的眼光看天然是很落后的,但在声卡刚刚起步时,已是很是先进的技术了。
2.立体声
单声道缺少对声音的位置定位,而立体声技术则完全改变了这一情况。它利用了两个独立声道进行录音,整个过程不加任何的声音处理。立体声系统的再现须要一对音箱来完成,它经过调整系统中两只音箱发出声音的大小,让咱们误认为声源来自两只音箱之间直线段中的任意位置。特别是当使用耳机的时候,因为左右两边的声音串音状况不多发生,因此声音的定位比较准确;再加上比较真实的音场感受,它的表现力比单声道真实得多。立体声虽然能够改变单声道缺少对声音的位置定位功能,可是它的不足也是很明显的。例如,对音箱的位置摆放要求较高,摆位的很差会直接影响声音的表达。
3.3D环绕声
3D 环绕声有时也称做3D加强立体声(3D Enhancement)。它是一种模拟环绕声系统。左、右声道的立体声信号,通过数字信号处理后,经过左、右两路音箱,产生三维的环绕声场效果。
4.四声环绕
四声道环绕规定了4个发音点,分别为前左、前右,后左、后右。听众则被包围在这中间。同时还建议增长一个低音音箱,以增强对低频信号的回放处理。这也就是现在4.1声道音箱系统普遍流行的缘由。就总体效果而言,四声道系统能够为听众带来来自多个不一样方向的声音环绕,能够得到身临其境的听觉感觉,给用户以全新的体验。现在四声道技术已经普遍融入于各种中高档声卡的设计中,成为将来发展的主流趋势。
5.5.1声道
5.1声道已普遍运用于各种传统影院和家庭影院中。一些比较知名的声音录制压缩格式,譬如杜比AC-3(Dolby Digital)、DTS等都是以5.1声音系统为技术蓝本的。其中“.1”声道,则是一个专门设计的超低音声道,这一声道能够产生频响范围20~120Hz的超低音。其实5.1声音系统来源于4.1环绕,不一样之处在于它增长了一个中置单元。这个中置单元负责传送低于80Hz的声音信号,在欣赏影片时有利于增强人声,把对话集中在整个声场的中部,以增长总体效果。
6.7.1声道
7.1声道系统的做用简单来讲就是在听者的周围创建起一套先后声场相对平衡的声场。
经过不一样声道模式采集的声音(录音的声音)在播放时因为选择的播放声道的模式不一样,会产生不同的播放效果。声音在播放时的声道模式有3种,分别为左声道、右声道以及左右混合。如下就是对这3种在播放时声道模式的介绍。
q 左声道:电子设备中模拟人类左耳的听觉范围产生的声音输出。
q 右声道:电子设备中模拟人类右耳的听觉范围产生的声音输出。
q 左右混合:电子设备中模拟人类左右耳的听觉范围产生的声音输出。
在iOS中对于声音在播放时的声道模式是能够进行设置的,此时须要使用到pan属性,其语法形式以下:
var pan: Float
其中,该属性设置的值能够为-1.0、0.0以及1.0。这3个值的说明以下:
q -1.0:表示左声道。
q 0.0:表示左右混合。
q 1.0:表示右声道。
【示例2-5】如下将以第一个实例为基础,实现声道模式的设置。具体的操做步骤以下:
(1)将主视图中的Pan Segmented Control与插座变量panSegmentedControl进行关联。
(2)将主视图中的Pan Segmented Control与动做setPan进行关联。
(3)打开ViewController.swift文件,编写代码,首先须要在viewDidLoad()方法中添加一行代码,实现对声道模式的设置,这个声道是初始声道。代码以下:
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
moreSettingsView.hidden=true
let path=NSBundle.mainBundle().pathForResource("Liekkas", ofType: "mp3")
……
audioEffect?.volume=volumeSlider.value
audioEffect?.pan = -1.0 //将声道设置为左声道
}
(4)在ViewController.swift文件中的setPan动做编写代码,实现经过声道模式的设置。代码以下:
@IBAction func setPan(sender: AnyObject) {
let index=panSegmentedControl.selectedSegmentIndex
if(index==0){
audioEffect?.pan = -1.0 //将声道设置为左声道
hideMoreSettingsView()
}else if(index==1){
audioEffect?.pan = 0.0 //将声道设置为左右混合
hideMoreSettingsView()
}else if(index==2){
audioEffect?.pan = 1.0 //将声道设置为右声道
hideMoreSettingsView()
}
}
此时运行程序,在模拟器界面中轻拍播放按钮,音频文件就会开始播放,此时听到的声音是来自左声道的;当开发者轻拍导航栏中的更多按钮后,会弹出更多设置项的界面。在声道这一项中开发者能够选择声音进行播放时所使用的声道模式。
本文选自:iOS 9音频应用开发基础教程大学霸内部资料,转载请注明出处,尊重技术尊重IT人!