本教學目標:
本次教學將爲 HelloTimer 的按鈕加上系統音效。
- 修改 上回教學Part3 的計時器程式碼
- 使用 NSSound 播放系統音效
- OS X Version 10.9.1
- Xcode Version 5.1 (5B130a)
本次教學將爲 HelloTimer 的按鈕加上系統音效。
建立 OS X Application 專案
NSSound 類別
本次教學要介紹的是使用 NSSound 類別播放系統音效。
NSSound 提供了簡單的介面讓我們去播放被 Core Audio 與 QuickTime 所支援格式的音效檔,AIFF、WAVE、與 MP3 等等。
NSSound 有提供許多方法用來載入音效檔,但本次教學先教最簡單的使用 soundName: 方法透過自動搜尋載入符合名稱的音效檔。
NSSound 提供了簡單的介面讓我們去播放被 Core Audio 與 QuickTime 所支援格式的音效檔,AIFF、WAVE、與 MP3 等等。
NSSound 有提供許多方法用來載入音效檔,但本次教學先教最簡單的使用 soundName: 方法透過自動搜尋載入符合名稱的音效檔。
在本次教學中,我們預計使用在 /System/Library/Sounds 下的系統預設的音效檔,soundName:方法傳入的檔案名稱,可以從該目錄中的檔案挑選(不必加上副檔名)。
編寫邏輯
新增 - (void) playSystemSound 方法用來播放系統音效,這裡我們使用 Glass.aiff 音效檔。
修改 - (IBAction)handleClick:(id)sender 方法,呼叫 playSystemSound 方法。
測試結果
接下來測試一下完成的程式。
按下鍵盤上的 Command + Shift + K,清除專案之前編譯的檔案。
按下鍵盤上的 Command + R,編譯並執行程式。
現在按下按鈕,就會聽到所設定的音效了。
按下鍵盤上的 Command + Shift + K,清除專案之前編譯的檔案。
按下鍵盤上的 Command + R,編譯並執行程式。
現在按下按鈕,就會聽到所設定的音效了。
後續討論
這次介紹了使用 soundName: 方法載入音效並播放,使得計時器越來越有趣了,下次教學將介紹其它更多關於播放聲音的方法。
關於這次的 Sample Code 下載:https://github.com/TakoBear/OSXHelloTimer3
關於這次的 Sample Code 下載:https://github.com/TakoBear/OSXHelloTimer3
參考
How do I trigger sound alert in OSX using Cocoa?
Introduction to Sound Programming Topics for Cocoa
NSSound Class Reference
HelloSystemSound
喜歡這篇文章嗎? 趕快加入Takobear粉絲團吧!
Introduction to Sound Programming Topics for Cocoa
NSSound Class Reference
HelloSystemSound
喜歡這篇文章嗎? 趕快加入Takobear粉絲團吧!