안녕하세요, 라이브하이브 류준호입니다.
현재 저희 서비스에서는 여러 개의 RemonCast 객체를 한 클라이언트에서 다룰 때가 있는데요.
예를 들면, 저희는 스피커모드를 디폴트로 설정해놓은 상황에서, 하나의 RemonCast 객체는 create하고, 다른 하나는 join하는 식으로 이루어집니다.
이때 create한 객체를 close했을 때에 다른 객체가 영향을 받아, 스피커모드가 해제되고 수화기로 출력되는 현상이 나타나고 있습니다.
화요일 저녁쯤에 여쭤봤을 때에는, AVAudioSession category를 본래의 설정으로 덮어쓰면 된다고 하셔서,
현재 온갖 callback 이벤트에서 덮어써보았으나 문제 지점에서는 변화가 없는 것으로 보입니다. (이미 떠있는 RemonCast객체여서인지… AVAudioSession.sharedInstance()의 값들을 찍어봐도 실제로 변화하는 값을 찾을 수 없기도 하였습니다.)
참고로, 콜백들에 다음과 같은 코드들을 넣어 시도해봤습니다.
RemonClient.setAudioSessionConfiguration(category: .playAndRecord,
mode: .default,
options: [.mixWithOthers, .allowBluetooth, .defaultToSpeaker])
do {
try AVAudioSession.sharedInstance().setCategory(.playAndRecord,
mode: .default,
options: [.mixWithOthers, .allowBluetooth, .defaultToSpeaker])
try AVAudioSession.sharedInstance().setActive(true, options: [])
try AVAudioSession.sharedInstance().overrideOutputAudioPort(.speaker)
} catch {
print(error)
}
혹시나 하여 가이드 상에 있는 옵션들로도 시도해보았습니다. (category: .playAndRecord, mode: .videoChat, options: []) 그러나 잘 해결되지 않아 질문드립니다.
기존에 떠있던 RemonCast 객체가 스피커모드 해제되는 경우, 이를 어떻게 스피커모드로 돌려놓을 수 있는지 그 해결방법이 궁금합니다. 최근에 관련해 해결하신 방법에 대해 코드레벨로 공유가 가능하다면 부탁드리겠습니다. 감사합니다.