2012年6月11日 星期一

[Android] framework 不支援的streaming mime-type

某些mime-type檔案在網路上可以直接取得,
透過browser點擊網路上的檔案,可以直接存取這些檔案

當檔案是影音檔時,browser會發送intent出去問有哪些AP支援這種mime-type
讓user選擇要download或是streaming play

不過android framework中的streaming player有以下的mime-type不支援

.midi
.mid
Android使用來支援midi的Synthesizer為Sonivox,
但根據Sonivox EAS(Embedded Audio Synthesis) API所載,卻沒有支援streaming play


refer:
http://blog.umito.nl/index.php/2010/05/07/midi-on-android/
http://code.google.com/p/android/issues/detail?id=8201


.imy


2012年6月6日 星期三

[XHTML] XHTML well-form


為解決大部份網頁都是含有錯誤的語法問題
W3C於1998年重組HTML小組,以XML的形式去重新描述HTML,而沒有加入任何新元素。
這套規格後來便成為了“XHTML1.0”

使用XHTML的好處,在於可以用XML的well-form形式去明確定立元素間的關係
與HTML4.0區別開來
而XHTML也嚴謹地定義了一些語法
如:

  1. 所有element和property皆使用小寫
  2. 所有property的value用引號來包覆
  3. 所有非空標籤都需要有結束的標籤
  4. property和value都不能簡化,使用property就需要指定其value
  5. 空的element也要有結束標籤,不然就是要使用“ />”


<div name="main"><br /><hr /></div>



今天遇到一個問題,使用chrome瀏覽 一個網頁時這個網址時,會發生error
Below is a rendering of the page up to the first error.

查看這個網頁的source code,有一行這樣寫著
<tr><td align="center" bgcolor="#FFCC00">--> .jpg <--</td></tr>


有沒有注意到竟然有“-->” 和"<--"
就是有"<" less than小於號和 “>”greater than大於號,
這樣的情況可能會導致兩個XHTML會認為是語法錯誤的問題

在W3C對XML的DTD文件中,針對特殊字元(special characters)有定義其該使用的html字串,如 "<"小於號就要使用 "&#38;#60;" 這樣的一串
refer: http://www.w3.org/TR/xhtml1/dtds.html#a_dtd_Special_characters

另一個問題則是,根據上一點,XHTML parser就會把">" "<"視為是元素的標籤號,如若把那些小破折號都拿掉,變成 “ >.jpg< ”的話,更加會造成破壞well-form格式,一對小於大於號裡,含有其他的小於大於號,"  <> ><<> "
當然在parse XML的過程中就會出錯

由於HTML中沒有明確限制一個開標籤就要對應一個閉標籤,所以html在遇到這類網頁時,大部份情況下還是可以成功render的
當然,安全起見,在編寫網頁時,特殊符號就應該用html字串來取代。

另外在Android device上測試過
從ICS(Android4.0) 之後的Browser就會顯示有錯誤
而ICS之前的版本則可以正常顯示出來
這說明了一點, Android ICS使用了XML parser來處理XHTML網頁
而之前的版本則用HTML的parser來處理,以HTML parser一向高寬容性作風,就不會那麼容易出錯了.
Powered By Blogger

Label Cloud

2009 (1) 不能連localhost (1) 內嵌音訊 (1) 求職 (1) 面試 (1) 音樂 (1) 動畫師 (1) 帳號管理 (1) 排程 (1) 畢展 (1) 創意市集 (1) 惡意程式 (1) 電腦動畫 (1) 權限管理 (1) adobe (1) android (4) animation (1) animator (1) apache (3) art (5) art taipei 2008 (1) audio (2) bbs (1) birthday (1) black and white (1) browser (2) career (2) certification (1) cgw (1) cinematography (1) code (3) Collie (1) color (2) command (16) competition (1) computer science (3) connection (1) cover (1) crafyJS (1) creative (1) CSS (1) DBN (2) design (7) developer (1) display (1) drawing (1) eclipse (3) embed (1) engine (1) EntityJS (1) exception (1) exhibition (1) flower (1) frame (1) freebsd (11) french (1) friends (3) function (1) game (1) google (2) graphic (3) html (2) HTML5 (1) https (1) illustrator (1) image processing (1) interactive storytelling (1) internet (3) interview (1) introduce (1) ip (1) japan (1) java (4) javascript (3) JIT (1) jmonkey (1) job (1) jquery (1) LAMP (1) LimeJS (1) linux (8) liquid galaxy (1) ListView (1) localhost (1) log (1) mail (1) marquee (1) midi (1) mime-type (1) mis (1) MIT (2) mo-cap (1) mobile (1) Modernizr (1) motion capture (1) movie (1) music (3) narrative (2) NCCU (3) news (1) note (10) originality (1) otaku (1) painting (4) performance (1) photography (2) photoshop (7) php (1) player modelling (1) poster (1) postfix (1) programming (5) QuarkJS (1) resource (1) schema (1) scroll (1) self aware (1) semantic (1) server (1) share (1) sketch (2) software (4) solve (2) Sonivox (1) speaking (1) ssl (1) SSLPeerUnverifiedException (1) streaming (1) Subversion (1) sunspider (1) SVN (3) svn server (1) system (1) taipei (1) test (1) tfam (1) tool (1) TortoiseSVN (1) tutor (1) ubuntu (3) update (1) uri (1) video (1) vim (1) w3c (1) wap wcss css css2.0 (1) web (8) WebGL (1) webkit (2) well-form (1) wiimote (1) wiiusej (1) workshop (1) xhtml (1) xml (2)