無插件串流

最近使用 Aurora.js 想要做到無插件在瀏覽器裏面串流音樂。Aurora.js 把播放、下載、解碼等等東西做完了,麻煩點在於要怎麼邊載入邊播放。如果已經有檔案的片段,那就可以直接用 AV.Player(new AV.Asset.fromBuffer(buffer)) 從 buffer 播放,要怎麼取得檔案的片段才是問題……看來一般瀏覽器裏面 XMLHttpRequest 是沒辦法在載入完成以前讀取片段內容的

想了一下大概有2種方法可以解決這問題:在 XMLHttpRequest 中用 Range header 來指定想要的檔案片段,譬如說載入檔案的第 10000byte~20000byte ,這樣一個單一 XHR 就只包含檔案的片段 (chunk),片段完成後就可以直接讀取。

這方法的問題在於 server side 不一定支援片段載入檔案,像是 ownCloud 的 PHP code 並沒有處理 Range 這個 header ,所以不管指定多少都會回傳完整的檔案。不過若單純只是把檔案用 Apache serve 出來沒有經過動態網頁語言那應該就可以用,Apache 會處理這個 header 。

這樣也會造成一些 overhead ,因爲一個檔案會需要好幾個 request 才能處理完成。在不同的網路環境當中調整 chunk size 也是一門學問。

第二種方法就是直接用 WebSocket 啦,連線會一直開着,伺服器也就可以不斷地推送資料給 client ,在 client side Javascript 裏面可以直接讀進 buffer 。

HTC 4.2 中文字型

One SV 升級到 4.2.2 之後換了中文字型:

Screenshot_2014-02-01-17-39-16

是還蠻好看的但我覺得不適合,他的字面比 Droid Sans Fallback 還要小,在手機上不適合。

而且 HTC 選擇的西文字體也不甚搭配

Screenshot_2014-02-01-17-50-23

查了一下居然是寫研的 DF Hei 系列

/system/fonts 底下有 DFHEIA5A.ttfDFHEIA7A.ttf ,分別是不同 weight 的版本。