2012年10月28日 星期日

音量搖控器

昨天和 YKW 看到一個英國衛兵造型的 USB 隨身碟, 我說外型設計滿有趣的, YKW 說她也做得出許多不同類型的設計, 當下我回說要有行動力做出來才算數, 不然大家都會說。

想想自己也沒啥立場這樣講, 幾年前就想寫個搖控器控制桌機音量, 晚上睡覺時方便控制音樂聲音大小。明明可以馬上寫好的東西, 卻一直沒寫。今天總算花了點時間做出來了。總計花了兩小時左右, 依序做了:

  • 了解怎麼用 Win API 控制系統音量, 初步看到幾個作法都有些不安成份, 後來看到別人寫了個命令列程式 NirCmd, 一試就成, 解決整個專案中最困難的一步
  • 安裝 Python 2.7 Win 7 64-bit 的版本
  • 寫個 python script, 直接用 os.system() 執行 NirCmd
  • 改寫成 python daemon, 收到連線傳來的數字後, 設定系統音量
  • 寫個 python client 測試, 確保 python daemon 沒問題
  • 更新一陣子沒用的 Android SDK, 後來想想我只需要用舊版的, 白更新了
  • 寫個 Android application, 試著排出需要的輸入和顯示元件
  • 浪費時間調整了一下版面
  • 實作 SeekBar 的 callback, 確定輸入的 callback 有接起來
  • 研究 Android socket, 看了一下別人的範例, 和 Java 沒什麼差
  • 實測遇到 permission denied, 原因是 manifest 要註明需要使用網路權限
  • 網路連上後有 encoding 轉換問題, 小修一下就 OK 了

做之前想說應該一小時多可以做好吧, 回頭看一下上述步驟, 比原本預想地瑣碎了點。躺在床上用的那一瞬間感覺真爽, 雖然只是個簡單的小東西, 卻有重拾初接觸程式的快感。

沒有留言:

張貼留言