Thursday, October 28, 2010

html5 audio tag on Android(froyo)

目前audio tag在android是動不了的
除了那controller只是一個白框之外

但在白框點了下去後
發現在external/webkit/WebKit/android/WebCoreSupport/MediaPlayerPrivateAndroid.cpp裡

MediaPlayerPrivate::play

只有處理video的case
m_glue->m_javaProxy  是null的

而這javaProxy只有在 createJavaPlayerIfNeeded
, setVisible(true)時才會被create
也就是 only for video case 才會處理

================================================
PS: 2010/12/07 update
Android 2.3 (Gingerbrand) already supports HTML5 audio tag

Wednesday, October 27, 2010

在webview上跑video

目前的Android 的html5要在webview上跑video
都是用 fullscreen來跑

最近拿了Browser Plugin的例子來改
就是利用Browser Plugin來play video
而不是利用Html5  video tag

有點麻煩的是 Browser Plugin在Android2.0後多了一些限制
通常你要在 eng build裡才能跑  就是 ro.secure要等於0

code裡用了上次講的MEDIA_OVERLAY的field
讓video能embedded在webview裡

有點特別的是
整個view hierarchy是webcorethread 建立的
所以反而不要在 UI Thread裡去動view的東西




git@github.com:allstarschh/SampleBrowserPlugin.git

html5 video tag on Android

找到了幾個可以在android上跑video tag的url

http://broken-links.com/tests/video/

http://www.awakecoding.com/android/

不過發現這幾個video的codec 在emulator上都沒support
所以只是有聲沒影

Wednesday, October 20, 2010

在Android上讓兩個SurfaceView 疊在一起

在android的設計上
兩個surfaceview是不能疊在一起的

例如想要一個小小的VideoView疊在一個一直在畫圖的SurfaceView上
你會發現videoview一直是出不來的  (不過是可以有聽到video聲音)

之前發現 在WindowManager有一個hidden的field
(也太賊了吧  SDK都找不到 某天在source code才看到)

TYPE_APPLICATION_MEDIA_OVERLAY


所以magic就是
SurfaceView.setWindowType(WindowManager.LayoutParams.TYPE_APPLICATION_MEDIA_OVERLAY);


不過後來在1.6或2.0有開一個API 在SurfaceView上
 public void setZOrderMediaOverlay
其實這就是會接回到上面講的那個hidden field

Friday, October 15, 2010

在v8的javascript file加log

最近發現v8一直死在從native call javascript function call的時候一直死掉
苦無log可尋

可以想學 d8.cc中 create 一個 FunctionTemplete 來印
可是後來發現  其實runtime.cc 中有一個Runtime_Log  function就可以用了

不過要先把log_runtime 的option 打開
跟define  ENABLE_LOGGING_AND_PROFILING

不過還不確定詳細的功能就是了

簡單的印log就
%Log('hello', [""]);

要用c的printf   後面是 valist那種  後面的js array還不知道怎麼用就是了

Tuesday, October 12, 2010

resources.arsc不一樣了

在android的apk 裡
都會夾著一個resource.arsc
他是從 res/裡的像 values/strings.xml 轉過來的

可是最近在android-2.2.1上發現(可能是Gingerbread了)
resoures.arsc格式有點不一樣了

本來是UTF-16LE
就是每個字元會兩個byte的

但是2.2.1上  只剩一個byte了
變成有點像ascii還是utf-8了

不知道為什麼resources.arsc要變就是了........

PS 2010/12/07
在Android 新出來的SDK 2.3 Gingerbrand
發現並沒有這問題
看來是AOSP那個build有些改變吧..........