デジタル放送やブロードメディア関連のリーディングカンパニー「メディアキャスト」

製品情報

ソースコード付き<デジタル放送対応> BMLブラウザ実装ハンドブック

書籍情報

ソースコード付き<デジタル放送対応> BMLブラウザ実装ハンドブック
ソースコード付き<デジタル放送対応>
BMLブラウザ実装ハンドブック

通常価格 CD-ROM+冊子版 ¥165,000(税込)

メディアキャスト特別価格 CD-ROM+冊子版
¥157,143(税込)

通常価格 CD-ROM版 ¥154,000(税込)

メディアキャスト特別価格 CD-ROM版
¥146,666(税込)

お申込フォーム 》
サイズ・判型 A4判
ページ数 482P
発売日 2009/11/17
執筆者 監修:株式会社 テレビ朝日メディアプレックス 執筆:田中 賢一郎
発行 株式会社インプレスR&D
発売 株式会社インプレスコミュニケーションズ
ソースコードをもとにBMLブラウザの実装を徹底的に解説
データ放送コンテンツ制作者のための実践的解説書!
本書は、既刊の『BMLコンテンツ開発ハンドブック』(地上デジタル/衛星デジタル/ワンセグ放送編)シリーズの続編で、既刊本より、より実践的な内容になっています。
具体的には、ソースコードに基づいてBMLブラウザの内部実装について詳しく解説しています。 また、BMLブラウザ(giggle)のエンジン部分のソースコードを、初めてすべて公開し、付属のCD-ROMに同梱(注)しています。
BMLコンテンツ作成者は、ブラウザの内部実装を知ることで、ARIB規格に対する理解をより深めることができ、さらに、ブラウザの動きを予想することで、より効率の良いBMLコンテンツを作成できるようになります。
BMLコンテンツ制作者はもちろんのこと、テレビメーカーや放送用各種ツールメーカーの方々、さらに放送局でデータ放送に従事する人やメーカーの開発者、プログラムの勉強をしている学生など、多くの皆様に読んでいただける必読の一冊です。
(注)
・BMLブラウザエンジンのソースコード
・BMLブラウザgiggle
・BMLサンプルコンテンツ
・BMLブラウザエンジンテストデータ

※同梱のBMLブラウザgiggleは、BMLブラウザgiggleの製品版とは若干内容が異なり、Windows 7やVistaに対応したり、USBドングルによるハードウェアプロテクトが解除されています。なお、BMLブラウザgiggle(製品版)は、販売を終了しているソフトウェアになります。

目次
■ 第1章 背景知識
  • 1.1 インストール
  • 1.1.1 Microsoft Visual C# Express Editionのインストール
  • 1.1.2 NUnitのインストール
  • 1.1.3 IISのインストール
  • 1.1.4 GiggleProjectのインストール
  • 1.2 動作確認
  • 1.2.1 GiggleProject
  • 1.2.2 NUnit
  • 1.3 最もシンプルなBMLブラウザ
  • 1.3.1 作業手順
  • 1.4 コードの読み方
  • 1.4.1 全体の構成
  • 1.4.2 BMLブラウザ実装のスタンス
■ 第2章 DSMCC
  • 2.1 背景知識
  • 2.1.1 MPEG-2 PSとMPEG-2 TS
  • 2.1.2 TSとES
  • 2.1.3 コンポーネントタグ
  • 2.1.4 PESとデータカルーセル
  • 2.1.5 モジュールとリソース
  • 2.1.6 名前空間
  • 2.1.7 カルーセルの時間変化
  • 2.1.8 イベントメッセージ
  • 2.1.9 リンク・非リンク
  • 2.1.10 ベースURI
  • 2.2 SI/PSI
  • 2.3 実装
  • 2.3.1 IDsmcc
  • 2.3.2 NameSpaceState
  • 2.3.3 NsContext
  • 2.3.4 SI
■ 第3章 BMLブラウザの概要
  • 3.1 BMLブラウザの特徴
  • 3.1.1 イベント駆動
  • 3.1.2 キーとなるクラス
  • 3.2 実装
  • 3.2.1 BML文書の読み込み – BmlDocument
  • 3.2.2 BmlNodeオブジェクトの作成 – BmlNode
  • 3.2.3 BmlNodeの検索台帳 – NodeFinder
  • 3.2.4 BMLブラウザへの入り口 – Browser
  • 3.2.5 BMLエンジンの心臓部 – MessagePump
  • 3.2.6 BML文書のチェック機能 – AribCheckVisitor
■ 第4章 PNG/MNG
  • 4.1 背景知識
  • 4.1.1 PNGの特徴とファイルフォーマット概説
  • 4.1.2 ARIBの制限
  • 4.1.3 CLUTファイル
  • 4.1.4 RGBとYCbCr
  • 4.2 実装
  • 4.2.1 CLUTファイルのパース/li>
  • 4.2.2 PNGファイルのパース
  • 4.2.3 PNGファイルのパース(別手法)
  • 4.3 MNG
■ 第5章 CSS2
  • 5.1 背景知識
  • 5.1.1 CSS2の例
  • 5.1.2 CSS2モジュールに必要な機能
  • 5.1.3 取り得る値
  • 5.1.4 Active/Focus/Normal
  • 5.1.5 適用可能な対象
  • 5.1.6 セレクタへの制限
  • 5.1.7 暗黙の初期値
  • 5.1.8 優先順位
  • 5.2 実装
  • 5.2.1 データ構造
  • 5.2.2 正規表現を使ったスタイルの取得
  • 5.2.3 CSS特性名、DOM属性名
  • 5.2.4 適用可能な対象の実装
  • 5.2.5 優先順位の実装
  • 5.2.6 CssItemの実装
■ 第6章 描画
  • 6.1 背景知識
  • 6.1.1 ブロック要素とインライン要素
  • 6.1.2 クリッピング
  • 6.1.3 ボックスモデル
  • 6.1.4 position特性
  • 6.1.5 デフォルトスタイルシートにみる描画ルール
  • 6.1.6 Z-order
  • 6.1.7 文字の組み版
  • 6.1.8 ブロック要素
  • 6.2 実装
  • 6.2.1 ボックスモデル
  • 6.2.2 要素の描画
  • 6.2.3 インライン要素のレイアウト
■ 第7章 コマンド
  • 7.1 コマンドパターン
  • 7.2 クラス図
  • 7.3 ARIBにおけるイベントに関する規定
  • 7.4 実装
  • 7.4.1 BmlCommand
  • 7.4.2 BmlKeyCode
  • 7.4.3 BmlCommandDataButtonPressed
  • 7.4.4 BmlCommandDataEventChanged
  • 7.4.5 BmlCommandBlur
  • 7.4.6 BmlCommandFocus
  • 7.4.7 BmlCommandChange
  • 7.4.8 BmlCommandClick
  • 7.4.9 BmlCommandLaunchDocument
  • 7.4.10 BmlCommandFinishDocument
  • 7.4.11 BmlCommandLoad/BmlCommandUnload
  • 7.4.12 BmlCommandRepaint
  • 7.4.13 BmlCommandTimer
  • 7.4.14 BmlCommandModuleLocked
  • 7.4.15 BmlCommandModuleUpdated
  • 7.4.16 BmlCommandModuleTemplate
  • 7.4.17 ModuleManager
  • 7.4.18 BmlCommandEventMessageFired
  • 7.4.19 BmlCommandKeydown
  • 7.4.20 BmlCommandKeyup
  • 7.4.21 BmlCommandEvalString
  • 7.4.22 BmlCommandEvalTerminalInput
■ 第8章 browserオブジェクト
  • 8.1 メンバー変数
  • 8.2 プロパティ
  • 8.3 メソッド実行の仕組み
  • 8.4 メソッド実装詳細
  • 8.4.1 拡張メソッド
  • 8.4.2 通信関連メソッド
  • 8.4.3 動作制御用メソッド
  • 8.4.4 モジュールロック関連メソッド
  • 8.4.5 その他のメソッド
■ 第9章 JavaScriptエンジン
  • 9.1 ManagedとUnmanaged
  • 9.2 Hostオブジェクト
  • 9.3 組み込みオブジェクト
  • 9.4 BMLブラウザにおけるHostオブジェクト
  • 9.5 JavaScriptオブジェクトとManagedオブジェクトの関係
  • 9.6 JavaScriptエンジン組み込み時の注意点
  • 9.6.1 3/2 = 1
  • 9.6.2 Dateオブジェクト
  • 9.6.3 BinaryTable
  • 9.6.4 文字コード
  • 9.7 実装詳細
  • 9.7.1JsVal
  • 9.7.2 IEngine
  • 9.7.3 SpiderMonkey
  • 9.7.4 JsObject
  • 9.8 JsObjectを継承するオブジェクト例
  • 9.8.1 BmlNode
  • 9.8.2 BmlEvent
  • 9.8.3 BmlDocumentObject
■ 第10章 その他のクラス
  • 10.1 BmlNodeを継承するクラス
  • 10.1.1 BmlNodeMeta
  • 10.1.2 BmlNodeScript
  • 10.1.3 BmlCSS2Properties
  • 10.1.4 BmlNodeBody
  • 10.1.5 BmlNodeTextTemplate
  • 10.1.6 BmlNodeDiv
  • 10.1.7 BmlNodeBeitem
  • 10.2 BmlDate
  • 10.3 BmlBinaryTable
PageTop