Форум программистов, компьютерный форум, киберфорум
Наши страницы
Swift
Войти
Регистрация
Восстановить пароль
 
AntiMaster1
0 / 0 / 0
Регистрация: 07.07.2016
Сообщений: 2
1

Голосовой динамик

07.07.2016, 20:23. Просмотров 526. Ответов 0
Метки нет (Все метки)

День добрый! Пишу VOIP приложение и уже неделю пытаюсь побороть проблему: при активации записи вывод звука переключается с голосового динамика на колонки (т.е. основной динамик). При подключении наушников звук идет через них, а после их отключения - пропадает совсем. Как можно этого избежать?

Инициализация записи:
Objective-C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
       let session = AVCaptureSession()
////////////////////////////////////////
       let sessionQueue: dispatch_queue_t = dispatch_queue_create("AudioRecordQ",DISPATCH_QUEUE_SERIAL)
        
        session.sessionPreset = AVCaptureSessionPresetHigh
        
       
        dispatch_async(sessionQueue, {
            var mic:AVCaptureDevice = AVCaptureDevice.defaultDeviceWithMediaType(AVMediaTypeAudio)
            var mic_in:AVCaptureDeviceInput = AVCaptureDeviceInput.deviceInputWithDevice(mic, error:nil)! as! AVCaptureDeviceInput
            
            let audio_output = AVCaptureAudioDataOutput()
            
            
            audio_output.setSampleBufferDelegate(self, queue: sessionQueue)
            
            self.session.addInput(mic_in)
            self.session.addOutput(audio_output)
            self.session.startRunning()
        })
Инициализация вывода:
Objective-C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
var session_play: AVAudioSession = AVAudioSession.sharedInstance()
var audioEngine: AVAudioEngine = AVAudioEngine()
var audioFilePlayer: AVAudioPlayerNode = AVAudioPlayerNode()
/////////////////////////////////
        var error: NSError?
        session_play.setCategory(AVAudioSessionCategoryPlayAndRecord , withOptions: AVAudioSessionCategoryOptions.AllowBluetooth, error: &error)
        session_play.overrideOutputAudioPort(AVAudioSessionPortOverride.None, error: nil);
        session_play.setActive(true, error: &error)
        
        println("Out \(session_play.currentRoute.outputs[0].portType)") // Пишет Receiver. Если вызвать после активации записи - Speaker
        
        var mainMixer = audioEngine.mainMixerNode
        audioEngine.attachNode(audioFilePlayer)
        audioEngine.connect(audioFilePlayer, to:mainMixer, format: audioFormat)
        audioEngine.startAndReturnError(nil)
        
        audioFilePlayer.play()
Вопроизведение через:
Objective-C
1
self.audioFilePlayer.scheduleBuffer(PCMBuffer, atTime: nil, options:nil , completionHandler: nil)
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.07.2016, 20:23
Ответы с готовыми решениями:

Голосовой набор в клавиатуре
Добрый день! Подскажите, пожалуйста, по поводу голосового набора в стандартной...

Голосовой Комментарий В 8.2
Можно ли в типовом Управлении Торговлей 10.3 присоединить к документу голосовой...

голосовой чат
Всем привет! Решил написать голосовой чат по локальной сети, но в сетевом...

Голосовой набор
Как в C++ можно сравнить два одинаковых звуковых файла?, есть ли такая функция...

Голосовой ввод
Возможен ли голосовой ввод? Если да, то как?

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.07.2016, 20:23

Голосовой ввод
Загорелся идеей написать программу, контролируемую голосом (с микрофона в...

Голосовой чат
На дипломную нужно реализовать локальный чат (с передачей сообщений проблем...

Голосовой калькулятор
Приветствую,решил что данная ветка подходит все таки лучше,посему задам вопросы...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru