自從 Flash 7 之後,Macromedia (已被 Adobe 收購) 就一直未對 Linux 平台釋出新版 Flash Player. 去年年底 Flash Player 的產品經理 Emmy Huang 在她的 blog 提到 Adobe 正在開發 Flash 8.5 的 Linux 版本,今年年中宣佈將支援 Flash 9 版本。終於,上個月 18 號,Adobe 釋出了 Flash 9 for Linux beta. 你可於 Adobe Lab 下載 Flash Player 9 Installers for Linux.

我已經在日常使用 Linux 為作業系統約五、六年,無論上網、文書、開發 (當然得視平台供應商的軟體而定,常常還是用 rdesktop 連上 Windows 編譯程式。),一直保持使用 Debian 的習慣。因此我得回答 Jeremy,Flash Player 9 真的對我很重要。我可以開始快樂的瀏覽網站,而不用老被要求升級的畫面干擾。:D

目前安裝的版本 (FP9_plugin_beta_101806.tar.gz) 有點小問題,在 LC_MESSAGES 設為 zh_TW.UTF-8 的狀態下,如果離開某個含有 Flash 的頁面,Firefox 會 “segmation fault”,猜測是 mo 檔案有問題或軟體訊息處理時未處理字碼的關係。試著以 gdb trace 看不出所以然:

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread -1491953984 (LWP 1732)]
0xa7d94466 in pthread_spin_lock () from /lib/tls/libpthread.so.0
(gdb) bt
#0 0xa7d94466 in pthread_spin_lock () from /lib/tls/libpthread.so.0
#1 0x9fa8db79 in NP_Shutdown ()
from /usr/lib/flashplugin-nonfree/libflashplayer.so
#2 0x9f9fd0c8 in NP_Shutdown ()
from /usr/lib/flashplugin-nonfree/libflashplayer.so
#3 0x9f9f8368 in NP_Shutdown ()
from /usr/lib/flashplugin-nonfree/libflashplayer.so
#4 0x9f9f1211 in ?? () from /usr/lib/flashplugin-nonfree/libflashplayer.so
#5 0x9f9f58f7 in ?? () from /usr/lib/flashplugin-nonfree/libflashplayer.so
#6 0x09265014 in ?? ()
#7 0xafa42778 in ?? ()
#8 0x00000000 in ?? ()

可將 LC_MESSAGES 設定為 zh_TW 或其他語系即可。

Mike M. 提到另外一位開發者 Tinic Uro 為 Flash Player for Linux 做了延伸 API (Additional Interface Support for Linux),由於不同的 distribution 的各種 API (如 audio, secure sockets 與 Unicode 等) 略有差異,而且時常更動版本。這個所謂延伸 API 的功能可以讓開發者針對不同的 platform 或 distribution 使用不同的軟體 API. 例如如果你的核心未使用 ALSA,那即可透過 flashsupport API 改用 OSS 提供音效。

預設的 Flash Player for Linux 已經支援 v4l, 但是理論上也可以透過 flashsupport API 改為支援 v4l2,或支援 YUV420 以外的影像來源。

另外一個好消息是新版的 Flex 2Flex Data Services Express支援 Linux 平台了。新版的 SDK 只需要 Java 即可執行。終於,我可以在 Linux 下使用官方版本的工具製造 Flash 了。可惜尚未有官方版本的 Flex Builder 2 for Linux, 只有 Flex Builder 2 for Macintosh 版本。由於 Flex Builder 2 是基於 Eclipse 所開發,feiy 在 Adobe 推出 Mac 版之前就先改了一份 Flex Builder 2 for Linux. 😀