Как отобразить строку состояния вызова (двойная высота) для приложения 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];
}

0 ответов

Другие вопросы по тегам