ユーザ用ツール

サイト用ツール


sound:start

差分

このページの2つのバージョン間の差分を表示します。

この比較画面へのリンク

両方とも前のリビジョン前のリビジョン
次のリビジョン
前のリビジョン
sound:start [2014/04/28 16:22] – [Sound API] ogasound:start [2014/04/28 16:39] (現在) – [OpenSL ES] oga
行 26: 行 26:
 レガシーなゲームに必要なサウンド機能は大きく分けて 2種類あります。 レガシーなゲームに必要なサウンド機能は大きく分けて 2種類あります。
  
-  効果音+  効果音
     * できるだけ低レイテンシで再生可能なこと     * できるだけ低レイテンシで再生可能なこと
     * ワンショット     * ワンショット
     * 多重再生     * 多重再生
-  BGM+  BGM
     * MIDI かストリームによりメモリ消費を抑える     * MIDI かストリームによりメモリ消費を抑える
 +    * Loop 再生が可能。できれば Loop ポイントを指定できることが望ましい
  
 多くの場合効果音はオンメモリのシンプルな PCM で、同じデータを多重に再生可能です。 多くの場合効果音はオンメモリのシンプルな PCM で、同じデータを多重に再生可能です。
行 37: 行 38:
  
 現在はハードウエアの高機能化、ゲーム内容の多様化により、必ずしもこの通りではありません。 現在はハードウエアの高機能化、ゲーム内容の多様化により、必ずしもこの通りではありません。
 +
 +
 +===== API 構成 =====
 +
 +多くの API は下記の構造を持っています。
 +
 +  - Engine
 +  - Player Object
 +  - Buffer Object
 +  - Stream API
 +
 +
 +==== Engine ====
 +
 +Application 毎の Context のようなものです。
 +リソース管理、各種 Object 管理を行います。
 +
 +==== Player ====
 +
 +データを再生するチャンネルに相当します。
 +多重再生を行う場合は、Player を複数用意します。
 +ハードウエアや API 仕様により、ミックス可能なプレイヤー(チャンネル)数には上限があります。
 +
 +==== Buffer ====
 +
 +実際に再生を行う PCM データです。
 +ハードウエアがサポートしているフォーマットに制限されます。
 +
 +動的に Buffer に書き込みを行うストリーム再生を行う場合は、複数の Buffer を Queue として扱います。
 +Buffer 毎に再生完了 Event が発生するので、そのタイミングで次の Buffer を Player に渡します。
 +
 +==== Stream API ====
 +
 +ストリーム再生をサポートする API が用意されている場合があります。
 +Queue の管理を行ってくれるものから、ファイル名や URL を指定するだけで全部自動で再生してくれるものまでさまざまです。
 +
 +どの程度の機能を持っているのかは API に依存します。
 +
 +
 +
  
  
行 76: 行 117:
   * mono / stereo   * mono / stereo
   * 8KHz, 11.025KHz, 12KHz, 16KHz, 22.05KHz, 24KHz, 32KHz, 44.1KHz, 48KHz   * 8KHz, 11.025KHz, 12KHz, 16KHz, 22.05KHz, 24KHz, 32KHz, 44.1KHz, 48KHz
 +
 +なお Locator の指定によりデータ配置の自由度が非常に高く、ファイル名や URI 指定でメモリ以外のデータ再生も可能です。
 +
 +
  
 ^                  ^       ^ Object       ^ Create Object                      ^ Interface    ^ QueryInterface    ^ ^                  ^       ^ Object       ^ Create Object                      ^ Interface    ^ QueryInterface    ^
 | Buffer Object    | 無し  | --           | --                                 | --           | --                | | Buffer Object    | 無し  | --           | --                                 | --           | --                |
 | Player Object    | あり  | SLObjectItf  | EngineObject->CreateAudioPlayer()  | SLPlayItf    | PlayerObject->GetInterface( SL_IID_PLAYER )  | | Player Object    | あり  | SLObjectItf  | EngineObject->CreateAudioPlayer()  | SLPlayItf    | PlayerObject->GetInterface( SL_IID_PLAYER )  |
 +
 +
 +
  
 ====== OpenAL ====== ====== OpenAL ======
sound/start.1398669749.txt.gz · 最終更新: 2014/04/28 16:22 by oga

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki