2011-08-24 3 views
2

こんにちは友人の開発者、BASS「プレイ」ストリーム

私は、私はシューティングゲームを質問をしていましたが、爆発は常に同じであるので、私は、爆発が発生したときに実装するかどうかはわかりません短時間で音が鳴り、音が終わっても爆発することはありません。私の質問は、同じストリームで複数回 "再生"する方法です。

ありがとうございます!

答えて

0

Bass Audio APIについては、BASS\Channels\Bass_ChannelPlay()のオンラインドキュメントに移動します。 Bass_ChannelPlay()を呼び出して、爆発のために既存のハンドルを渡し、restarttrueに設定してください。詳細については、マニュアルを参照してください。ここで

1

は非常に単純な例を示します。この例では、一度だけ、あなたのサウンドファイルを再生中

int device = -1; // Default Sounddevice 
int freq = 44100; // Sample rate (Hz) 
HSTREAM streamHandle; // Handle for open stream 


/* Initialize output device */ 
BASS_Init(device, freq, 0, 0, NULL); 


/* Load your soundfile and play it */ 
streamHandle = BASS_StreamCreateFile(FALSE, "your_file.mp3", 0, 0, 0); 
BASS_ChannelPlay(streamHandle, FALSE); 


/* As very last, close Bass */ 
BASS_Free(); 

、あなたは新しいハンドルにあなたが音を必要とするたびに作成することができます。 しかし、BASS_Init()BASS_Free()は1回だけ実行する必要があります。

別の解決策は、サンプルとしてサウンドを再生することです:

HSAMPLE streamHandle; // Handle for sample 
HCHANNEL channel; // Handle for open channel of the sample 


/* Initialize output device */ 
BASS_Init(device, freq, 0, 0, NULL); 


/* Load sample and play it */ 
streamHandle = BASS_SampleLoad(FALSE, "your_file.mp3", 0, 0, 0); 
channel = BASS_SampleGetChannel(streamHandle, FALSE); 


/* Once you are done with your sample you should free it */ 
BASS_SampleFree(streamHandle); 

/* As very last, close Bass */ 
BASS_Free();