小编Tom*_*Tom的帖子

kAudioUnitProperty_ShouldAllocateBuffer无效

我只是在从麦克风获取样品进行处理。我为输入和输出设置了音频单元,并且都具有渲染回调。我的问题是关于麦克风回调的回调。

我希望核心音频为我分配麦克风回调中的缓冲区。

 UInt32 shouldAllocateBuffer = 1;
AudioUnitSetProperty(audioUnit, kAudioUnitProperty_ShouldAllocateBuffer, kAudioUnitScope_Global, 1, &shouldAllocateBuffer, sizeof(shouldAllocateBuffer));
Run Code Online (Sandbox Code Playgroud)

但是,这样做总是会导致回调中的ioData指针为NULL。我是否在分配自己的缓冲区?

输入项

static OSStatus recordingCallback(void *inRefCon, 
                          AudioUnitRenderActionFlags *ioActionFlags, 
                          const AudioTimeStamp *inTimeStamp, 
                          UInt32 inBusNumber, 
                          UInt32 inNumberFrames, 
                          AudioBufferList *ioData) {

OSStatus status;
status = AudioUnitRender(audioUnit, 
                         ioActionFlags, 
                         inTimeStamp, 
                         inBusNumber, 
                         inNumberFrames, 
                        ioData);  // ioData is null here
}
Run Code Online (Sandbox Code Playgroud)

回放

static OSStatus playbackCallback(void *inRefCon, 
                                  AudioUnitRenderActionFlags *ioActionFlags, 
                                  const AudioTimeStamp *inTimeStamp, 
                                  UInt32 inBusNumber, 
                                  UInt32 inNumberFrames, 
                                  AudioBufferList *ioData) {    
// ioData is not NULL here but I get silence in the headphones.
    return noErr;
}
Run Code Online (Sandbox Code Playgroud)

core-audio

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

如何使用Matlab以特定间隔播放音频文件?

像平常一样:

player=audioplayer(snd1,FS1);
play(player);

%let as suppose that sound duration is 10 seconds
% and I wanted to play the sound from second 5 or 7... 
%   .. depending on the input of user(and using audioplayer libraries)
Run Code Online (Sandbox Code Playgroud)

matlab audio-player matlab-figure

3
推荐指数
1
解决办法
1499
查看次数

标签 统计

audio-player ×1

core-audio ×1

matlab ×1

matlab-figure ×1