目前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
Thursday, October 28, 2010
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的東西
都是用 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
所以只是有聲沒影
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
兩個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還不知道怎麼用就是了
苦無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還不知道怎麼用就是了
Wednesday, October 13, 2010
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有些改變吧..........
都會夾著一個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有些改變吧..........
Subscribe to:
Posts (Atom)