Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Воспроизведение аудио из памяти используя AVAydioPlayer - Objective-C

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Objective-C Изменить программно название кнопки http://www.cyberforum.ru/objective-c/thread1461367.html
Здравствуйте. Я хочу при запуске программы изменить название кнопки на актуальную дату в формате (ДД.ММ.ГГГГ) Подскажите пожалуйста что писать после setTitle и правильно ли я пытаюсь получать дату?...
Objective-C Сортировка многомерного массива чисел Добрый день. Подскажите как отсортировать массив, элементами которого являются массивы? Есть массив внутри которого массивы из 3 элементов (матрица 3х3) (@, @, @) нужно отсортировать матрицу по... http://www.cyberforum.ru/objective-c/thread1458853.html
Реализация двухфакторной аутентификации! Objective-C
Доброе время суток, уважаемые форумчане! Подскажите, как реализовать двухфакторную аутентификацию для входа в OS X? Готовые решения не интересуют(Pam usb, Rohos, стандартный клиент eToken и т.д.)....
Objective-C Кнопка из картинки
Перелопатив кучу информации я пришел к выводу что конкретного "официального" метода сделать из картинки кликабельную кнопку нет. Максимум, что получилось найти это брать цвет пикселя и на его основе...
Objective-C @property или ivar http://www.cyberforum.ru/objective-c/thread1440902.html
Добрый день! Занимаюсь Objective C недавно, и, до сегодняшнего времени, не задавался вышеупомянутым вопросом. В учебниках и статьях разброд, многие вообще все свойства выкидывают в .h файл,...
Objective-C Возможно ли строить свою карьеру в Objective-C начиная с фриланса? Сейчас стою на этапе изучения языка и вот возник подобный вопрос. Возможно ли доучиться до уровня Junior ios developer (к примеру проходить успешно собеседования на данную должность) и начать... подробнее

Показать сообщение отдельно
caus148
0 / 0 / 0
Регистрация: 29.05.2015
Сообщений: 5

Воспроизведение аудио из памяти используя AVAydioPlayer - Objective-C

29.05.2015, 01:27. Просмотров 649. Ответов 4
Метки (Все метки)

Здравствуйте. Моя задача состоит в проигрывании аудио из микрофона в режиме реального времени.
Я сначала создаю сессию, следующим образом
Objective-C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
AVAudioSession *audioSession = [AVAudioSession sharedInstance];
    [audioSession setCategory:AVAudioSessionCategoryPlayAndRecord error:NULL];
    //[audioSession setMode:AVAudioSessionModeMeasurement error:NULL];
    [audioSession setActive:YES error:NULL];
    
    // Optional - default gives 1024 samples at 44.1kHz
    //[session setPreferredIOBufferDuration:samplesPerSlice/session.sampleRate error:NULL];
    
    // Configure the capture session (strongly-referenced instance variable, otherwise the capture stops after one slice)
    _captureSession = [[AVCaptureSession alloc] init];
    
    // Configure audio device input
    AVCaptureDevice *device = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeAudio];
    AVCaptureDeviceInput *input = [AVCaptureDeviceInput deviceInputWithDevice:device error:NULL];
    [_captureSession addInput:input];
    
    // Configure audio data output
    AVCaptureAudioDataOutput *output = [[AVCaptureAudioDataOutput alloc] init];
    dispatch_queue_t queue = dispatch_queue_create("My callback", DISPATCH_QUEUE_SERIAL);
    [output setSampleBufferDelegate:self queue:queue];
    [_captureSession addOutput:output];
    
    // Start the capture session.   
    [_captureSession startRunning];
После того, как я перехватываю аудио сигналы, пытаюсь воспроизвести их через AVAudioPlayer, но постоянно получаю значение плеера nil

Objective-C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
- (void)captureOutput:(AVCaptureOutput *)captureOutput didOutputSampleBuffer:(CMSampleBufferRef)sampleBuffer fromConnection:(AVCaptureConnection *)connection {
AudioBufferList audioBufferList;
        NSMutableData *data= [NSMutableData data];
        CMBlockBufferRef blockBuffer;
        CMSampleBufferGetAudioBufferListWithRetainedBlockBuffer(sampleBuffer, NULL, &audioBufferList, sizeof(audioBufferList), NULL, NULL, 0, &blockBuffer);
 
        for( int y=0; y< audioBufferList.mNumberBuffers; y++ ){
 
            AudioBuffer audioBuffer = audioBufferList.mBuffers[y];
            Float32 *frame = (Float32*)audioBuffer.mData;
 
            [data appendBytes:frame length:audioBuffer.mDataByteSize];
 
        }
 
        CFRelease(blockBuffer);
        NSError *err;
        AVAudioPlayer *player = [[AVAudioPlayer alloc] initWithData:data error:&err];
        NSLog(@"%@", err);
        [player play];
}
Как мне воспроизвести полученные сигналы из памяти, не прибегая к записи в файл?. Спасибо!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru