機能

pcmデータを出力します。
channelで指定したチャンネルが再生中の場合、その再生が終わるのを待ちます。



API

int sceAudioOutputBlocking(int channel, int vol, void *buf);

第一引数

sceAudioChReserveで初期化割り当てしたチャンネルナンバー

第二引数

ボリューム。
headerで#define PSP_AUDIO_VOLUME_MAX 0x8000
とされているので、これが使える。

第三引数

実際のpcmデータを入れたポインタを渡す。
44.1k、16bit、stereoの。
waveファイルのformatと同じです。
なので、wavファイル開いてちょちょっと
やればあとはそのままファイル読んで
この関数に横流ししませう。

戻り値

多分ほかと同じで
0で成功

使用例

PlayNoiseForeverをコールすると、雑音を無限に再生し続けるサンプルです。
注意:未テストです。
#include <pspaudio.h>
#include <stdlib.h>

#define SAMPLES 1024 /* バッファサイズ */

short buffer[2][SAMPLES][2];
void SynthWaveform(short *wave){ /* 音を合成します */
    int n;
    for(n=0;n<SAMPLES*2;n++)
        wave[n]=rand(); /* ホワイトノイズジェネレータ */
}
void PlayNoiseForever(){ /* 雑音を永遠に再生 */
    int bufidx=0;
    int chan=sceAudioChReserve();
    while(1){
        SynthWaveform(buffer[bufidx]);
        sceAudioOutputBlocking(chan, PSP_VOLUME_MAX, buffer[bufidx]);
        bufidx=1-bufidx;
    }
}

タグ:

+ タグ編集
  • タグ:

このサイトはreCAPTCHAによって保護されており、Googleの プライバシーポリシー利用規約 が適用されます。

最終更新:2009年03月01日 01:09