我试图在OSX上播放声音,来自缓冲区(例如:等效的Windows"PlaySound"功能).
我已经整理了一些C++代码来播放AudioQueue的音频(因为我的理解是这是在OSX上播放音频的最简单方法).
但是,从未生成声音,并且从不调用音频回调函数.
有人知道我做错了什么,或者有没有人有一个简单的C/C++例子来说明如何在OSX上播放声音?
#include
#include
#define BUFFER_COUNT 3
static struct AQPlayerState {
AudioStreamBasicDescription desc;
AudioQueueRef queue;
AudioQueueBufferRef buffers[BUFFER_COUNT];
unsigned buffer_size;
} state;
static void audio_callback (void *aux, AudioQueueRef aq, AudioQueueBufferRef bufout)
{
printf("I never get called!\n");
#define nsamples 4096
short data[nsamples];
for (int i=0;imAudioDataByteSize = nsamples * sizeof(short) * 1;
assert(bufout->mAudioDataByteSize mAudioData, data, bufout->mAudioDataByteSize);
AudioQueueEnqueueBuffer(state.queue, bufout, 0, NULL);
}
void audio_init()
{
int i;
bzero(&state, sizeof(state));
state.desc.mFormatID = kAudioFormatLinearPCM;
state.desc.mFormatFlags = kAudioFormatFlagIsSignedInteger | kAudioFormatFlagIsPacked;
state.desc.mSampleRate = 44100; …Run Code Online (Sandbox Code Playgroud)