iOS 9音頻應用播放音頻之音量設置與聲道設置

iOS 9音頻應用播放音頻之音量設置與聲道設置

iOS 9音頻應用音量設置

音量又稱響度、音強,是指人耳對所聽到的聲音大小強弱的主觀感覺,其客觀評價尺度是聲音的振幅大小。在iOS 9音頻應用的應用中,常常會出現播放的音樂音量過大或者太小。此時iOS 9音頻應用開發者可使用AVAudioPlayer類中的volume屬性對音頻文件的音量進行設置。其語法形式以下:ios

  • var volume: Floatgit

其中,該屬性設置的值是浮點類型,範圍在0.01.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  設置音量

iOS 9音頻應用聲道設置

爲了讓聲音能夠還原真實的效果,因此有了聲道的產生。聲道是指聲音在錄製或播放時在不一樣空間位置採集或回放的相互獨立的音頻信號。經過聲道,開發人員能夠調整聲音的強弱以及延遲模擬各類真實的聲音效果。通常狀況下聲音在錄製時採用設備的不一樣,能夠分爲單聲道、立體聲、3D環繞聲、四聲環繞、5.1聲道和7.1聲道。

1.單聲道

所謂的單聲道,就是聲音只由一隻音箱產生,聽衆能夠很明顯地聽出聲音的來源就是音箱所擺放的位置,其自己的表現力較爲平淡;當經過兩個揚聲器回放單聲道信息的時候,咱們能夠明顯感受到聲音是從兩個音箱正中間傳遞到咱們耳朵裏的。這種缺少位置感的錄製方式用如今的眼光看天然是很落後的,但在聲卡剛剛起步時,已是很是先進的技術了。

2.立體聲

單聲道缺少對聲音的位置定位,而立體聲技術則完全改變了這一情況。它利用了兩個獨立聲道進行錄音,整個過程不加任何的聲音處理。立體聲系統的再現須要一對音箱來完成,它經過調整系統中兩隻音箱發出聲音的大小,讓咱們誤認爲聲源來自兩隻音箱之間直線段中的任意位置。特別是當使用耳機的時候,因爲左右兩邊的聲音串音狀況不多發生,因此聲音的定位比較準確;再加上比較真實的音場感受,它的表現力比單聲道真實得多。立體聲雖然能夠改變單聲道缺少對聲音的位置定位功能,可是它的不足也是很明顯的。例如,對音箱的位置擺放要求較高,擺位的很差會直接影響聲音的表達。

3.3D環繞聲

3D 環繞聲有時也稱做3D加強立體聲(3D Enhancement)。它是一種模擬環繞聲系統。左、右聲道的立體聲信號,通過數字信號處理後,經過左、右兩路音箱,產生三維的環繞聲場效果。

4.四聲環繞

四聲道環繞規定了4個發音點,分別爲前左、前右,後左、後右。聽衆則被包圍在這中間。同時還建議增長一個低音音箱,以增強對低頻信號的回放處理。這也就是現在4.1聲道音箱系統普遍流行的緣由。就總體效果而言,四聲道系統能夠爲聽衆帶來來自多個不一樣方向的聲音環繞,能夠得到身臨其境的聽覺感覺,給用戶以全新的體驗。現在四聲道技術已經普遍融入於各種中高檔聲卡的設計中,成爲將來發展的主流趨勢。

5.5.1聲道

5.1聲道已普遍運用於各種傳統影院和家庭影院中。一些比較知名的聲音錄製壓縮格式,譬如杜比AC-3Dolby Digital)、DTS等都是以5.1聲音系統爲技術藍本的。其中「.1」聲道,則是一個專門設計的超低音聲道,這一聲道能夠產生頻響範圍20120Hz的超低音。其實5.1聲音系統來源於4.1環繞,不一樣之處在於它增長了一箇中置單元。這個中置單元負責傳送低於80Hz的聲音信號,在欣賞影片時有利於增強人聲,把對話集中在整個聲場的中部,以增長總體效果。

6.7.1聲道

7.1聲道系統的做用簡單來講就是在聽者的周圍創建起一套先後聲場相對平衡的聲場。

經過不一樣聲道模式採集的聲音(錄音的聲音)在播放時因爲選擇的播放聲道的模式不一樣,會產生不同的播放效果。聲音在播放時的聲道模式有3種,分別爲左聲道、右聲道以及左右混合。如下就是對這3種在播放時聲道模式的介紹。

  • q  左聲道:電子設備中模擬人類左耳的聽覺範圍產生的聲音輸出。

  • q  右聲道:電子設備中模擬人類右耳的聽覺範圍產生的聲音輸出。

  • q  左右混合:電子設備中模擬人類左右耳的聽覺範圍產生的聲音輸出。

iOS中對於聲音在播放時的聲道模式是能夠進行設置的,此時須要使用到pan屬性,其語法形式以下:

  • var pan: Float

其中,該屬性設置的值能夠爲-1.00.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人!

相關文章
相關標籤/搜索