小编use*_*524的帖子

如何使用AudioQueue在C++中为Mac OSX播放声音

我试图在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)

c++ macos

5
推荐指数
1
解决办法
4648
查看次数

标签 统计

c++ ×1

macos ×1