RemonCall/RemonCast 에서는 사이즈에 대한 정보만 제공하고, 실제 뷰의 비율을 조정하지않습니다. 특정 비율로 영상을 보여주기 위해서는 LayoutConstraint 등을 사용해 원하는 뷰 크로 조정해야 합니다.
Use External Capturer
2.4.43 버전 부터 기본 RTCCameraCapturer가 아닌 외부 Capturer를 이용 할 수 있도록 지원합니다. 이 기능을 사용하기 위해서는 RemonController의 useExternalCapturer 값을 true로 설정 하고, RemonController의 localExternalCaptureDelegator에게 외부 Capturer로 부터 얻어온 Frame를 넘겨주시면 됩니다.
iOS에서 Audio Session Category, Mode 설정에 따라 스피커출력, 음소거 스위치의 작동, 이어폰 연결 작동, 블루투스 등이 상이 하게 작동할 수 있습니다. 서비스에 따라 AVAudioSession.Category.playback, AVAudioSession.Category.playAndRecord 등을 사용할 수 있습니다. WebRTC 의 기본값은 playAndRecord 이며, 대부분의 방송, 통신에 대해서는 기본값을 권장합니다. 다만 통화, 방송 송출, 방송 시청 등 서비스에 맞춰 필요에 따라 AVAudioSession.Category 를 변경해 사용하실 수 있습니다.
소리 출력 디바이스는 기본적으로 ear piece 로 나오게 되며 스피커로 나오게 하려면 아래와 같은 적용이 필요합니다. RemonCall, RemonCast 생성전에 호출하면 해당 설정이 유지되므로, viewDidLoad() 메쏘드에서 원하는 카테고리와 모드를 설정해 줍니다.
// Objective-C의 경우 아직 업데이트되지 않았습니다.
// 이 코드는 soloAmbient 카테고리를 사용하고, speaker로 음성을 출력 합니다.
- (void)viewDidLoad {
[super viewDidLoad];
@try {
NSError *error = nil;
[AVAudioSession.sharedInstance setCategory:AVAudioSessionCategorySoloAmbient error:&error];
[AVAudioSession.sharedInstance setActive:YES error:&error];
[AVAudioSession.sharedInstance overrideOutputAudioPort:AVAudioSessionPortOverrideSpeaker error:&error];
} @catch (NSException *exception) {
NSLog(@"error is %@",[exception description]);
}
}
Audio Session에 대한 모드와 일반적인 사용은 아래 링크를 확인하세요.
Volume Ratio
RemonCast 또는 RemonCall를 music mode로 이용할 경우 outputVolume이 크게 느껴질 수 있습니다. 이럴 경우 volumeRatio 값을 조정 하여 AudioSession outputVolume 과의 출력 비율 조정 할 수 있습니다. 예를 들어 outputVolume이 1.0 (최대값) 일때 volumeRatio를 0.8로 설정 한다면 RemonCast 또는 RemonCall은 outputVolume의 80%의 크기로 출력 되어 집니다.
self.remonCall.volumeRatio =0.8
[self.remonCall setVolumeRatio:0.8]
Mixing Sound
WebRTC가 동작을 시작 하면 WebRTC가 AVAudioSession을 점유 합니다. 그로 인하여 AVAudioSession을 이용한 효과음 재생에 문제가 발생 합니다. 이 문제를 해결 하기 위하여 OpenAL과 같은 저수준의 효과음 재생 라이브러리 사용을 권장 드리며 OpenAL을 좀 더 쉽게 사용할 수 있게 만들어진 ObjectAL과 같은 라이브러리를 사용 할 수 있습니다.
백그라운드에서 SDK 연결을 지속적으로 필요하면 아래의 옵션을 Project > Targets > Capabilities > Background Modes 에서 설정하면 됩니다. 백그라운드 설정을 안할 경우 앱이 백그라운드로 진입시 RemoteMonster와의 연결이 종료되어 방송 및 통화가 종료됩니다.
아래는 지속적으로 연결이 되어있을때 작동이며 위 옵션을 키지 않으면 백그라운드시 모든 경우에 영상, 음성의 송출, 수신이 중단됩니다. 단 아래의 동작은 Audio Session Category가 AVAudioSessionCategoryPlayback 일 경우의 동작입니다.