Как отобразить строку состояния вызова (двойная высота) для приложения Voip с зеленым цветом в iOS?
Я разрабатываю приложение, основанное на sip-вызовах, и я хочу отправлять вызов в фоновом режиме, если кто-либо начинает вызов и выходит из приложения. В этом случае я хочу отобразить продолжительность вызова на экране. Для этого я использую строку состояния in_call. Но код, который я использовал, устанавливает цвет фона строки состояния in_call на красный, и я не понимаю, как изменить его цвет на зеленый, также хочу показать таймер на нем. Поскольку я использую этот первый раз, я не понимаю, как решить это. Вот мой код. Пожалуйста, помогите, если кто-нибудь может. Я вызываю этот метод для метода didFinishLaunchingWithOptions
+(void) startRecording {
AVAudioSession * audioSession = [AVAudioSession sharedInstance];
NSError * err = nil;
[audioSession setCategory: AVAudioSessionCategoryPlayAndRecord error: & err];
if (err) {
NSLog(@"audioSession: %@ %d %@", [err domain], [err code], [
[err userInfo] description
]);
return;
}
[audioSession setActive: YES error: & err];
err = nil;
if (err) {
NSLog(@"audioSession: %@ %d %@", [err domain], [err code], [
[err userInfo] description
]);
return;
}
NSMutableDictionary * recordSetting = [
[NSMutableDictionary alloc] init
];
[recordSetting setValue: [NSNumber numberWithInt: kAudioFormatLinearPCM] forKey: AVFormatIDKey];
[recordSetting setValue: [NSNumber numberWithFloat: 44100.0] forKey: AVSampleRateKey];
[recordSetting setValue: [NSNumber numberWithInt: 2] forKey: AVNumberOfChannelsKey];
[recordSetting setValue: [NSNumber numberWithInt: 16] forKey: AVLinearPCMBitDepthKey];
[recordSetting setValue: [NSNumber numberWithBool: NO] forKey: AVLinearPCMIsBigEndianKey];
[recordSetting setValue: [NSNumber numberWithBool: NO] forKey: AVLinearPCMIsFloatKey];
NSURL * url = [NSURL fileURLWithPath: @"/dev/null"];
err = nil;
AVAudioRecorder * recorder = [
[AVAudioRecorder alloc] initWithURL: url settings: recordSetting error: & err
];
if (!recorder) {
NSLog(@"recorder: %@ %d %@", [err domain], [err code], [
[err userInfo] description
]);
UIAlertView * alert = [
[UIAlertView alloc] initWithTitle: @"Warning"
message: [err localizedDescription]
delegate: nil
cancelButtonTitle: @"OK"
otherButtonTitles: nil
];
[alert show];
return;
}
//prepare to record
[recorder setDelegate: self];
[recorder prepareToRecord];
recorder.meteringEnabled = YES;
BOOL audioHWAvailable = audioSession.inputIsAvailable;
if (!audioHWAvailable) {
UIAlertView * cantRecordAlert = [
[UIAlertView alloc] initWithTitle: @"Warning"
message: @"Audio input hardware not available"
delegate: nil
cancelButtonTitle: @"OK"
otherButtonTitles: nil
];
[cantRecordAlert show];
return;
}
// start recording
[recorder record]; //recordForDuration:(NSTimeInterval) 40];
}