OSMF 介紹
- 2. OSMF 設計目的
• SWF, Video, Audio, Image, Text, ....
• Delivery via CDN
• Ads
• Tracking
• Social Networking
- 3. 我為什麼要用 OSMF
• CDNs Protocol
– Secure Stream Token
– FCSubscribe
• Dynamic Streaming (Multi-Bitrate)
• Smooth Switching Channel
• SWF Verification (Embed SWF)
• Error Log
- 4. OSMF Player 組件架構 (MVC)
Player Component
MediaPlayer MediaElement
(Controller) (Model)
MediaContainer
(View)
- 5. 預設 OSMF Player 組件
• Flash AS3
– org.osmf.media.MediaPlayerSprite
• Flex Spark
– spark.components.VideoDisplay
– spark.components.VideoPlayer
spark.skins.spark.VideoPlayerSkin
- 6. Player Component
• 建立 MediaFactory, MediaPlayer, MediaContainer
• 載入 Plugin
• 建立 MediaElement (via MediaFactory or not)
• 對外暴露 Superset API
- 7. MediaElement
• 種類
– VideoElement
– ImageElement
– SWFElement
– ProxyElement
– SerialElement
– ...
• Trait (API)
• Metadata (Property)
- 8. MediaElement Trait
PlayTrait play, stop, pause
TimeTrait duration, currentTime
VideoElement
SeekTrait seek, seeking
….
對照方式 MediaTraitType 常數
AUDIO, PLAY, SEEK, TIME, LOAD, BUFFER, …
- 9. MediaElement Metadata
• 與 Trait 類似,只有定義 key-value 資料組合
• MediaElement 與 MeidaPlayer 或其它 MediaElement
之間資訊傳遞用介面
• 常用公開類別只有 LayoutMetadata
• 事件功能:valueAdd, valueChange, valueRemove
- 12. MediaElement 產生流程
MediaPlayer
Resource
MediaFactory PluginInfo1
PluginInfo2
MediaFactoryItems
• Id .createMediaElement(resource)
• type
• canHandleResourceFunction
• mediaResourceCreationFunction
MediaElement
- 13. OSMF Plugin
• 依據 Resource 種類與 Domain 提供額外客製化功能
• 封裝視覺與非視覺的 Media
• 透過 API 宣告自身能力,提供 MediaFactory 自省
• 載入方式:Static Plugin、Dynamic Plugin
• MediaPlayer 不應該直接使用 Plug-in,而是透過
MediaFactory.createMediaElement 建立
MediaElement
- 14. OSMF Plugin
• 依功能區分
– Standard Plugin
一個 Resource 產生一個 MediaElement
– Proxy Plugin
一個 Resource 產生一個 MediaElement
以及多個 ProxyElement
– Reference Plugin
知道每個產生 MediaElement
但本身不一定產生 MediaElement
- 15. • http://osmf.org/
• http://blogs.adobe.com/osmf/
• http://forums.adobe.com/community/opensource/osmf
- 16. Version Matrix
• OSMF 0.7.0 1.0 1.5 1.6 1.6.1 2.0
• Flash Player 10.0 10.2 10.2 10.2 10.2 10.2
(min 10.0)
• Flex SDK 4.1.0 4.5.0 N/A N/A N/A N/A
4.5.1
4.6.0