0
我做了一些測試和學習IOS音頻隊列服務無法獲取IOS InputAudioQueue工作(很簡單的例子)
我得到一個-50 osstatus當我嘗試創建一個新的InputAudioQueue ,我是什麼做錯了?
我讀蘋果AudioQueue服務引用了幾次,和讀取功能的文檔,但我仍然不`噸知道什麼問題
感謝
#import "AudioSenderVC.h"
#import <AudioToolbox/AudioToolbox.h>
#import <Foundation/Foundation.h>
@interface AudioSenderVC()
@property (weak, nonatomic) IBOutlet UITextField *ipTextField;
@end
@implementation AudioSenderVC
static void MyAudioQueueInputCallback (
void *inUserData,
AudioQueueRef inAQ,
AudioQueueBufferRef inBuffer,
const AudioTimeStamp *inStartTime,
UInt32 inNumberPacketDescriptions,
const AudioStreamPacketDescription *inPacketDescs
)
{
NSLog(@"hey I just got audio data from the mic!");
}
void createAudioQueue(AudioStreamBasicDescription* mDataFormat)
{
AudioQueueRef* inAQ = NULL;
OSStatus err=AudioQueueNewInput(mDataFormat, MyAudioQueueInputCallback ,NULL,CFRunLoopGetCurrent(), kCFRunLoopCommonModes, 0, inAQ);
if(inAQ!=NULL)
NSLog(@"YAY!, InputQueue was Created");
if(err)
NSLog(@"Error:%i",(int)err);
}
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
// Custom initialization
}
return self;
}
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view.
}
- (void)setupAudioFormat:(AudioStreamBasicDescription*)format
{
format->mSampleRate = 8000.0;
format->mFormatID = kAudioFormatLinearPCM;
format->mFramesPerPacket = 1;
format->mChannelsPerFrame = 1;
format->mBytesPerFrame = 2;
format->mBytesPerPacket = 2;
format->mBitsPerChannel = 16;
format->mReserved = 0;
format->mFormatFlags = kLinearPCMFormatFlagIsBigEndian |
kLinearPCMFormatFlagIsSignedInteger |
kLinearPCMFormatFlagIsPacked;
}
- (IBAction)sendAudio:(id)sender {
AudioStreamBasicDescription* mDataFormat=malloc(sizeof(AudioStreamBasicDescription));
[self setupAudioFormat:mDataFormat];
createAudioQueue(mDataFormat);
}
@end
非常感謝,解決了它! –