目次 - SDL_mixer - API(機能別) - チャネル - Mix_AllocateChannels

Mix_AllocateChannels

ミキサーが管理するチャネルの数を動的に変更する

構文

int Mix_AllocateChannels(int numchans)

引数

numchans新しく設定するチャネルの数, 負の数のときは変更しない

戻り値

設定されたチャネル数を戻す.

詳細

SDL_mixの扱う「チャネル」は, モノラル/ステレオのチャネルとは異なる. チャネルとは, それぞれ個別に対応付けられたオーディオデータ源のことで, 「トラック」と呼ぶ方がわかりやすいかもしれない. 例えば, 3つの異なるWAVファイルを同時に再生する場合, 3つのSDL_mixerチャネルが必要となる.

アプリケーションは同時に再生したいオーディオデータの数だけチャネルが必要で, それらは1つのストリームにミキシングされてオーディオデバイスに送られる.

オーディオデバイスを開いたとき, SDL_mixerはMIX_CHANNELSの数だけ(現在は8)のチャネルを確保する. これはアプリケーションが必要とする数より多いかもしれない. チャネル数を増やしたり減らしたりしたい場合は, この関数で変更することができる.

チャネルの数を減らすと, 減らされた現在再生中のチャネルの再生は停止する. このとき, これらのチャネルのエフェクトは解除され, Mix_ChannelFinished()で設定されたコールバックが削除された各チャネルに対して呼ばれる.

numchansが0未満の場合, 何も変更せずに現在のチャネル数を戻す.

バージョン

SDL_mixer 2.0.0以降

SDL Wikiへのリンク

SDL2_mixer/Mix_AllocateChannels