• OpenSL ES での複数音源再生

    2011年03月23日 04時56分
    以前の記事で、MIDIを複数再生するとおかしくなると書きましたが、使い方が悪かったようです。

    EngineとOutput Mixが1対1で、Output MixとPlayerが1対Nだと思っていましたが、
    正しくはEngineとOutput Mixが1対Nで、Output MixとPlayerが1対1のようです。

    リファレンスにもきちんと書いてありました。
    7.9 Output Mix
    Description
    The output mix object represents a set of audio output devices to which one audio output
    stream is sent. The application retrieves an output mix object from the engine and may
    specify that output mix as the sink for a media object. The engine must support at least
    one output mix, though it may support more. The API does not provide a direct audio
    output IO-device as a sink for media objects.

    実際そのように修正したところ、エミュレータ上の動作は正常になりました。

    ただ、Output Mixの数は最低1つが保証されているのみで、
    それ以上もたぶんあるんじゃないの的な記述なのが少々気になります。

    実際に使える数の上限は不明です。
    とりあえずエミュレータ上で2音まで確認しました。

    ランタイムの実装依存だとは思いますが、もしかしたら実機依存かもしれません。

    コメントを書く

    名前
    本文
    編集用パスワード
    管理者のみ閲覧