機能
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;
}
}
最終更新:2009年03月01日 01:09