2017-04-24 1 views
0

이 샘플 코드는 온라인에서 찾았습니다. https://developer.apple.com/library/content/samplecode/AVCam/Introduction/Intro.htmlIOS 비디오 앱의 하단 마이크를 선택하는 방법은 무엇입니까?

입력 마이크를 기본 마이크에서 iPhone의 하단 마이크로 변경하려고합니다. 누군가 스위프트에서이 문제를 겪어 본 경험이 있습니까? 내가 찾은 유일한 예는 Obj-C에 있었고 구현했을 때 오류가 발생했습니다. Apple의 AVCam 샘플 앱을 참조 용으로 사용 중이며 오디오 부분은 아래에 포함되어 있습니다.

// Add audio input. 
    do { 
     let audioDevice = AVCaptureDevice.defaultDevice(withMediaType: AVMediaTypeAudio) 
     let audioDeviceInput = try AVCaptureDeviceInput(device: audioDevice) 

     if session.canAddInput(audioDeviceInput) { 
      session.addInput(audioDeviceInput) 
     } 
     else { 
      print("Could not add audio device input to the session") 
     } 
    } 
    catch { 
     print("Could not create audio device input: \(error)") 
    } 

답변

0

다음을 사용하여 설정을 세션의 범주를 시도해야합니다 : 당신은 단지 당신이 AVAudioSession 사용해야 오디오가 필요한 경우

session.setCategory(AVAudioSessionCategoryPlayAndRecord, withOptions: AVAudioSessionCategoryOptions.DefaultToSpeaker, error: nil) 

이 기본

0

에서 사용을 하단 마이크를해야한다 - https://developer.apple.com/reference/avfoundation/avaudiosession

테스트하지 않았습니다. 함께 놀 수있는 샘플 코드 :

import AVFoundation 
. 
. 
private var session: AVAudioSession! 
private var input: AVAudioSessionPortDescription! 
. 
. 
. 
session = AVAudioSession.sharedInstance() 
do { 
    try session.setCategory(AVAudioSessionCategoryRecord) 

// Fetch Built in Mic 
if let availableInputs = session.availableInputs { 
    for inputSource in availableInputs { 
     if inputSource.portType == AVAudioSessionPortBuiltInMic { 
      input = inputSource 
      break 
     } 
} 

// Set preferred data source by location 
if let dataSources = input.dataSources { 
    for dataSource in dataSources { 
     if dataSource.location == AVAudioSessionLocationLower { 
      input.setPreferredDataSource(dataSource) 
      break 
     } 
    }  
} 

session.setPreferredInput(input) 
. 
.  
} catch { 
    .... 
} 
관련 문제