發表文章

目前顯示的是 3月, 2017的文章

MMSCatchCha - Side Project 的始與末

圖片
    自己的專案命名為MMSCatchCha,是在Android平台上方便收聽空中英語教室系列的廣播節目。 github repository:  https://github.com/dragonjohn/MMSCatchCha     專案起源於2013年,本意是要做mms串流的多媒體播放器,輸入串流網址後可以無限循環播放。但最後先聚焦於英文廣播,來達成學外文又能夠有效利用上下班通勤的時間。以聽覺的方式學習,既能避免在搖晃的車廂內過度使用眼睛,也能藉由不斷循環播放當日廣播的方式,反覆練習加深該日容在腦中的記憶。[1]     一開始空中英語教室官方網頁( http://studioclassroom.com )的串流位置是hard code在網頁上,以網頁爬蟲切割文字的方式極為容易的取得mms url,當時的程式碼如下: https://github.com/dragonjohn/SCstreamGet/blob/master/src/SCStreamMain.java     約兩年前,官方網站更改為restful API,以GET request送出廣播節目類型(大家說英語、空中英語教室或彭蒙惠英語)和日期為參數給伺服器,隨後回應mms連結給本機端。可參考以下程式碼catchUrls片段,比較重要的是對方伺服器服務為了防止盜連,而限制只能由studioclassroom網域下的網頁才能連結到串流,當然這用程式加入referer欺騙伺服器是很容易的事。 https://github.com/dragonjohn/MMSCatchCha/blob/master/app/src/main/java/dragonjohn/mmscatchcha/main.java     取得播放連結後,由於Android原生的media player太過於陽春,整合開源軟體VLC media player又遇到技術上的問題[2],只好安裝VLC player並透過此來播放取得的串流位置。欲想的整合方式是將VLC player整合至APP,並且能夠實踐A-B區間反覆播放。(串流播放在結束後會重新發送request給伺服器重新讀取串流內容,若是要保留cache裡面的資料並且在重複播放時不用經由網路讀取來源,必須在廣播結束前迴轉到開開始的片段繼