本次教學目標:
本次教學將會寫出一個超簡單的音樂播放器,簡單到只有載入,播放,與停止功能。
載入音樂的部分我們將不再預先將檔案路徑寫死在程式碼中,或是使用 NSTextField 手動輸入。本次教學將使用 NSOpenPanel,開啓選擇檔案的視窗,讓使用者瀏覽目錄,選擇需要的檔案開啟。
- 學會使用 NSOpenPanel
- OS X Version 10.9.1
- Xcode Version 5.1 (5B130a)
本次教學將會寫出一個超簡單的音樂播放器,簡單到只有載入,播放,與停止功能。
載入音樂的部分我們將不再預先將檔案路徑寫死在程式碼中,或是使用 NSTextField 手動輸入。本次教學將使用 NSOpenPanel,開啓選擇檔案的視窗,讓使用者瀏覽目錄,選擇需要的檔案開啟。
建立 OS X Application 專案
新增 MainWindowController,整理專案結構如下:
設計版面(layout)
Label:Not Loading…
Push Button 各為:Load, Play, Stop
Push Button 各為:Load, Play, Stop
編寫邏輯
以下是 MainWindowController 類別的相關程式碼:
MainWindowController.h
MainWindowController.h
MainWindowController.m
連接元件
infoTextField 連接至 Label
loadSoundOpenPanel: 連接至 Load Button
play: 連接至 Play Button
stop: 連接至 Stop Button
loadSoundOpenPanel: 連接至 Load Button
play: 連接至 Play Button
stop: 連接至 Stop Button
測試結果
接下來測試一下完成的程式。
按下鍵盤上的 Command + Shift + K,清除專案之前編譯的檔案。
按下鍵盤上的 Command + R,編譯並執行程式。
按下鍵盤上的 Command + Shift + K,清除專案之前編譯的檔案。
按下鍵盤上的 Command + R,編譯並執行程式。
後續討論
本次教學做出的 player 還可以更好,在 NSSound 類別中,還有許多方法可以使用,如使用 setVolume 設定音量大小,使用setCurrentTime 設定目前播放時間,以及其他設定是否循環播放。
如果配合 NSTableView,就能夠做出播放列表,讓 Player 的功能更加強大。
如果配合 NSTableView,就能夠做出播放列表,讓 Player 的功能更加強大。
參考
Introduction to Sound Programming Topics for Cocoa
NSSound Class Reference
NSOpenPanel Class Reference
Mac:打开一个目录
喜歡這篇文章嗎? 趕快加入Takobear粉絲團吧!
NSSound Class Reference
NSOpenPanel Class Reference
Mac:打开一个目录
喜歡這篇文章嗎? 趕快加入Takobear粉絲團吧!