import "exp/nacl/av"

avパッケージは、単体またはウェブブラウザのウィンドウに埋め込まれて動作する、Native Clientのバイナリ用のオーディオとビデオアクセスを実装しています。

このAPIのC言語版のドキュメントは、こちらを参照ください。 http://nativeclient.googlecode.com/svn/data/docs_tarball/nacl/googleclient/native_client/scons-out/doc/html/group__audio__video.html

パッケージファイル

av.go event.go image.go

定数

Init用のサブシステム値。

const (
    SubsystemVideo = 1 << iota
    SubsystemAudio
    SubsystemEmbed
)

オーディオフォーマット。

const (
    AudioFormatStereo44K = iota
    AudioFormatStereo48K
)

変数

ColorModelは、Native Clientのカラーに対応したカラーモデルです。

var ColorModel = image.ColorModelFunc(toColor)

AudioStream関数

func AudioStream(data []uint16) (nextSize int, err os.Error)

AudioStreamは、オーディオデバイスへのアクセスを提供します。AudioStreamを呼び出す度に、与えた16ビットステレオPCMオーディオサンプルデータを書きこみ、次のAudioStreamに必要なサンプル数を返します。

最初に書き込むサンプル数を得るためには、AudioStream(nil)を呼び出してください。

Color型

Colorは、Native Clientのカラー値を表します。これはR, G, B, Aを32ビットの「0xAARRGGBB」にパックした値です。

type Color uint32

(Color) RGBA関数

func (p Color) RGBA() (r, g, b, a uint32)

Image型

Imageは、Native Clientのフレームバッファを表します。イメージのピクセルは、線形スライス、または二次元スライスとしてアクセス可能です。Imageは、image.Imageを実装しています。

type Image struct {
    Linear []Color
    Pixel  [][]Color
}

(*Image) At関数

func (m *Image) At(x, y int) image.Color

(*Image) Bounds関数

func (m *Image) Bounds() image.Rectangle

(*Image) ColorModel関数

func (m *Image) ColorModel() image.ColorModel

(*Image) Set関数

func (m *Image) Set(x, y int, color image.Color)

Window型

Windowは、Native Clientのウィンドウとの接続を表します。この型は、draw.Contextを実装しています。

type Window struct {
    Embedded bool // webページの一部として動いているか?
    *Image        // スクリーンイメージ
    // contains unexported fields
}

Init関数

func Init(subsys int, dx, dy int) (*Window, os.Error)

Initは、subsysで指定したNative Clientサブシステムを初期化します。Init関数は、このパッケージ内の他の関数を使用する前に呼び出さなくてはならず、また一度しか呼び出してはいけません。

SubsystemVideoフラグがセットされているとき、Initはウィンドウサイズdx×dyを必要とします。ウェブページに埋め込むときは、ウェブページのウィンドウがInitのパラメータを上書きするため、返されるウィンドウは指定したサイズと異なることがあります。

SubsystemAudioフラグがセットされているとき、Initは44kHz 16ビットステレオPCMオーディサンプルを転送する接続をオーディオデバイスへ要求します。

(*Window) Close関数

func (w *Window) Close() os.Error

(*Window) EventChan関数

func (w *Window) EventChan() <-chan interface{}

(*Window) FlushImage関数

func (w *Window) FlushImage()

(*Window) Screen関数

func (w *Window) Screen() draw.Image