iOS HW9結合圖片、文字、button 的 UIKit IBAction 練習題_0822
Published in
6 min readAug 22, 2024
本周作業蠻有趣的,可以互動的方式撥放聲音,第一時間想到周杰倫的歌- "聽見下雨的聲音",希望能撥放一些大自然的聲音,於是展開本次作業執行。
PS:周董真是我每次做APP的靈感來源之一!(真的膜拜一下)
於是開始尋找聲音相關的素材,剛好找到這個網站有很多mp3聲音素材
花了不少時間挑選自己喜歡的聲音,彙整幾個聲音的mp3連結
接著尋找對應的圖片素材,也花了不少時間
不知道有沒有比較好的圖片剪裁,譬如我想要的圖片修改步驟如下:不同大小的尺寸圖片,改存成同樣大小,並且裁切成圓角矩形,再存png
但我找了很多線上編輯圖片的軟體,都有點單一,不能一次到位,我最後是用ppt編輯圖片,再轉存png,希望有人能推薦好的線上編輯圖片軟體。
後續把圖片和按鈕放上去APP裡面,排版畫面如下:
相關程式碼:
import UIKit
import AVFAudio
import AVKit
class ViewController: UIViewController {
var player = AVPlayer()
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
}
@IBAction func speak(_ sender: Any) {
let url = URL(string: "https://taira-komori.jpn.org/sound_os2/nature01/thunder1.mp3")!
let playerItem = AVPlayerItem(url:url)
player = AVPlayer(playerItem: playerItem)
player.play()
// utterance.voice = AVSpeechSynthesisVoice(langage "zh-TW")
}
@IBAction func fall(_ sender: Any) {
let url = URL(string: "https://taira-komori.jpn.org/sound_os2/environment01/fall_streets1.mp3")!
let playerItem = AVPlayerItem(url: url)
player = AVPlayer(playerItem: playerItem)
player.play()
}
@IBAction func smile(_ sender: Any) {
let url = URL(string: "https://taira-komori.jpn.org/sound_os2/nature01/rain_thunder1.mp3")!
let playerItem = AVPlayerItem(url:url)
player = AVPlayer(playerItem: playerItem)
player.play()
}
@IBAction func river2(_ sender: Any) {
let url = URL(string: "https://taira-komori.jpn.org/sound_os2/nature01/mountain_stream.mp3")!
let playerItem = AVPlayerItem(url:url)
player = AVPlayer(playerItem: playerItem)
player.play()
}
@IBAction func morning(_ sender: Any) {
let url = URL(string: "https://taira-komori.jpn.org/sound_os2/environment01/town_morning.mp3")!
let playerItem = AVPlayerItem(url:url)
player = AVPlayer(playerItem: playerItem)
player.play()
}
@IBAction func street2(_ sender: Any) {
let url = URL(string: "https://taira-komori.jpn.org/sound_os2/event01/Japanese_festival1.mp3")!
let playerItem = AVPlayerItem(url:url)
player = AVPlayer(playerItem: playerItem)
player.play()
}
其實,程式算蠻固定,拉線命名,再改mp3網址即可
APP做好之後會需要錄螢幕畫面與聲音,原本內建的錄影只有電腦畫面沒電腦系統聲音,於是找了這篇,安裝Soundflower套件,安裝要打開權限並且重新開機一遍,再加上QuickTime錄影即可完成,雖然也是花了一點時間摸索!
最後做好的成果APP
心得:
- 程式碼還有一些知其然不知其所以然的地方,希望在搞懂一下。
- 這個聲音的網站素材很豐富,找聲音和找素材蠻有趣,覺得好像在當導演找適合的聲音素材放到電影裡面。
- APP的美觀排版真的影響蠻大,些微的細節眼睛其實都看的出來差異,不過本人還在培養美感當中。
- Button拉線的時候要命名Action,但是發現有問題時,我後來建議都是把有問題的Button刪掉,那段程式碼刪掉,避免影響到後續,然後再重新放一個Button並重新拉線,比較不會出錯。