#69 10YearChallenge(Bruno Mars)

這次練習10YearChallenge和音樂播放功能!

(1)App操作的動畫影片

(由於有音樂需播放,故將影片上傳至Youtube)

(2)GitHub的專案連結

這次的檔案比較大,接近70MB,若下載完就可以刪掉才不佔空間唷!

(3) 特製的 App 畫面截圖

(4) 參考連結

彼得潘 #69 10YearChallenge,時間都去哪了

永展學長 天后蔡依林-金曲時光機

Julia學姐 人生轉捩點之 My 10YearChallenge!

彼得潘 設定 Background Mode 在背景播放音樂

彼得潘 利用 AVPlayerLooper 重覆播放音樂和影片

(5) 內容說明

這次的練習是10YearChallenge,原本想做自己的,後來發現…這十年來的照片並不是很多,所以決定找Bruno Mars當我的練習主題!剛好他是2009年出專輯,真是太巧了!喔耶!😆✌️

寫作業前都會先拜讀彼得潘的教學資源和學長姐與同學們的作品,發現大家都好厲害!但~也發現一件很恐怖的事情!就是彼得潘教學文章附的延伸連結,一點進去就出不來了!!(會一直點連結看下一篇文章)😅😅

所以這次除了原定作業內容外,也增加了音樂播放的部分!有興趣的朋友歡迎參考彼得潘的文章唷!在10YearChallenge的程式碼部分,我是邊看相關教學文章與參考連結,也交叉參考了學長姐的程式碼,實不相瞞,我幾乎完全cover 永展學長 天后蔡依林-金曲時光機,由於程式部分真的寫的非常精簡實用,我有試著用自己的方式寫,但又邊回頭看看學長姐的版本,整個被完封…所以就決定沿用大部分的程式碼了!(如果對程式碼有興趣的,可以參考永展和Julia的唷!)

想增加背景音樂是因為主題和音樂有關,在寫程式碼時就邊看彼得潘的相關文章,寫著寫著就想要延伸成跟著Slider和自動輪播Switch同步播放音樂,但看了AVFoundation相關文章後,還是沒有完全理解音樂如何透過網路連結來設定,所以就找了其他方式,透過youtube下載成mp3,並利用下列方式
Bundle.main.path(forResource: String?, ofType:String?)
來設定音樂來源。

剩下的的基本控制按鈕(播放、暫停、下一首、上一首)我只是用if-else去做設定,由於需要和Slider與Swith同步,所以延伸了相關的附加條件在程式碼裡,基本上就是簡單的音樂播放器的概念。但有一個還沒找到解決方案,就是自動連續播放音樂,查了很多文章,但目前還是無法實作出來,最後決定先把作業整理到Medium。💂‍♀️💂‍♀️

這次沒有特別附上程式碼說明,因為內容大家一定都看得懂!我目前的能力都是用很簡單直白的程式碼來解決,主要的10YearChallenge程式碼,請務必參考永展和Julia,真的寫得很棒唷!👍👍

(6) 心得感想

雖然這次有額外增加一些功能,但把自己想要的概念,透過程式設計出來,其實還是很開心的,尤其是…卡住超過好幾個小時的問題,解決時真的很開心!我想這就是程式語言的迷人之處吧!😆😍

對於學習Swift的這段期間以來,真的覺得英文好重要好重要!因為查資料時,很多都是英文的,如果英文閱讀能力可以強一點,應該比較快看懂,也比較容易理解該程式的語法和正確使用方式,關於這部分…我想只能慢慢累積經驗了!

由於目前還在持續打穩基礎中,所以遇到bug時,都是邊找資料邊修改,希望未來有一天,腦袋瓜想到什麼,就可以用程式碼立刻實現想要的功能!加油加油!💪

--

--