之前一直用前人留下的audioqueue在搞,发现设置什么的都是单例,想多语音聊天没法实现,要么多人的时候卡,实例化两个的时候也没用,可能就是一个单例
后来发现播放音频流的就那么两个,audioqueue和openAL,就尝试了下openAL,实例化两个,就播放成功了,声音互不干扰
录制还是用的audioqueue的,播放用openal,以后再写完整吧
代码:.h
#import <Foundation/Foundation.h>
#import <OpenAL/al.h>
#import <OpenAL/alc.h>
#import <OpenAL/oalMacOSX_OALExtensions.h>
@interface LXOpenAlPlay2 :NSObject
{
ALCcontext *mContext;
ALCdevice *mDevicde;
ALuint outSourceId;
NSMutableDictionary *soundDictionary;
NSMutableArray *bufferStorageArray;
ALuint buff;
NSTimer *updateBufferTimer;
}
@property(nonatomic)ALCcontext *mContext;
@property(nonatomic)ALCdevice *mDevice;
@property(nonatomic,retain)NSMutableDictionary *soundDictionary;
@property(nonatomic,retain)NSMutableArray *bufferStorageArray;
-(void)initOpenAL;
-(void)openAudioFromQueue:(uint8_t *)data dataSize:(UInt32)dataSize;
- (void) openAudioFromQueue:(NSData *)tmpData;
-(BOOL)updataQueueBuffer;
-(void)playSound;
-(void)stopSound;
-(void)cleanUpOpenAL;
@end