Swift 100 Days: Project 3 - AVAudioPlayer

Environment: Swift 4 / Day: 3 / Date: Oct. 19, 2017 / Time: 5 hours

我學到什麼:

・AVAudioPlayer
・音樂匯入Xcode
・Play, Pause, Restart, 調整速度。

Github 原始碼: HERE


小知識:

AVAudioPlayer v.s. AVPlayer

  1. AVAudioPlayer在<AVFoundation/AVFoundation.h>框架裡面,使用簡單,但只能播放 local 音頻,不支持流媒體播放,每一個 audioplayer 對象就是一度音頻
  2. AVPlayer 也在<AVFoundation/AVFoundation.h>框架裡面,iOS 4.0 以後,可以使用AVPlayer播放本地local音頻和支持流媒體播放,但提供接口較少,處理音頻不夠靈活,AVPlayer是播放網路音樂和影片最常用到的,它可以自己缓存網路數據。在播放影片時,必須創建一個AVPlayerLayer用來展示影片;在播放音樂時,聲音就不用創建這個對象。

以上原文來自於 iOS AVAudioPlayer vs. AVPlayer AVPlayerViewController vs.MPMoviePlayerViewController,同時講解了音頻與影片的適用方式。另外 AVPlayer vs. AVAudioPlayer ,解釋了兩者的差別。


心得:

百米短跑,需要衝勁;萬米長跑,需要耐力。求知,不僅需要有百米短跑的衝勁,卻掃除一又一個的攔路虎;又要具有萬米長跑的耐力,去長期地一點一滴地積累知識。 — — — 佚名

Day 1 & 2,我是根據 100 Days of Swift 的 project 順序,但最近在面試時,碰到了一間十分有趣的新創 talktek,有別於其他的影片教學,轉念朝向了純 Audio 教學,雖然不知道市場反映實際將如何,但也許會是另一片天空,目前還不確定是否會前往此新境地打拚,但我得說我是非常興奮的,那邊環境真的好得沒話說,沒在台北見過這麼舒適的辦公處。

Anyways,在做了前兩天的 project 後,我仔細考慮了一下,決定做一些彈性,有個矛盾點困擾著我:「遠水救不了近火?人無遠慮必有近憂?」有些 project 可能沒那麼快需要接觸,但又可能隨時需要上手,只得盡可能在兩者之間達到平衡。

簡而言之,我先跳進了 audio 的小火坑,結合:

Creating a Music Player App in Swift 3(基本的 AVAudioPlayer 創建)& Use a slider to control audio speed in Swift (AVAudio Rate)

做了這個小 app ,加一點點點的 UI,好像自從 Staytuned 之後,已經無法接受醜小鴨介面,用 storyboard 處理 autolayout 也越來越上手,好啦我知道影片畫質很浮誇的差,聲音也回~~~音~~~滿~~~滿~~~,還有叩叩叩的按鍵聲,實在超不專業影片,請多見諒。


So far 在 Swift 100 Days 碰到的問題:

花太多時間在 100 days 上面,沒做正經事,常常一轉頭, omg 事情堆到門口去。
> Might Lead to: 容易堅持不下去,成本太高,搞不好 Day 7 就陣亡。
> Solution: 一天至多耗時 4 hour,包括寫文章,時間比為 Swift: Medium = 3: 1,如果時間超過就果斷告一段落,明天繼續。

One clap, two clap, three clap, forty?

By clapping more or less, you can signal to us which stories really stand out.