2013-12-20 3 views
0

Кто-нибудь знает, как остановить iphone, заглушая выход динамика во время телефонного звонка?ios посылает звук на динамики во время телефонного звонка

Я разрабатываю приложение, где мне нужно, чтобы иметь возможность воспроизводить звук через громкоговорители телефона в то время как есть PhoneCall ..

Надежда кто-то может помочь!

ответ

0

Я не верю, что Apple позволяет другому аудио смешиваться с аудио во время телефонного звонка. Apple хочет обеспечить, чтобы плохо написанные приложения не мешали пользователю выполнять важные функции, например, делать телефонные звонки на своем телефоне. Поэтому ваше приложение в основном вынуждено подчиняться.

+0

Это возможно, так как у меня в настоящее время возникает эта проблема, когда у нас есть отчет об ошибке, который звучит: звук из приложения слышен из динамика ушной трубки даже во время телефонных звонков. Я еще не изучал этот вопрос. – Jonny

0

Я не думаю, что это возможно, и я надеюсь, что это не так, потому что лично я не хочу, чтобы какое-либо приложение переписывало мои телефонные звонки или прерывало важные звонки с шуточными звуками.

Я также думаю, что это было бы очень рискованно, если бы вы подумали об этом с точки зрения безопасности.

2

Я знаю, что есть принятый ответ, но я не думаю, что это совершенно правильно. Некоторые навигационные приложения (например, Waze) могут передавать звуковые дорожки во время телефонных звонков. Если вы используете AVAudioPlayer, вы можете обрабатывать перерывы (т. Е. Телефонные звонки), отвечая на делегат audioPlayerBeginInterruption: (вы можете узнать больше об этом here).

В то время как у меня не было слишком много времени, чтобы посмотреть на него мне удалось сыграть короткий звуковой файл при инициализации телефонного вызова или воспроизведения песни, используя следующий код:

-(void)audioPlayerBeginInterruption:(AVAudioPlayer *)player 
{ 
    NSString *path = [[NSBundle mainBundle] pathForResource:@"mySound" ofType:@"mp3"]; 
    SystemSoundID soundFileObject; 
    NSURL *pathURL = [NSURL fileURLWithPath : path]; 
    CFURLRef soundFileURLRef = (CFURLRef)CFBridgingRetain(pathURL); 
    AudioServicesCreateSystemSoundID(soundFileURLRef, &soundFileObject); 
    AudioServicesPlaySystemSound(soundFileObject); 
} 

Хранить в помните, что, когда прерывание приходит в вашем приложении, может быть подпольно или приостановлено, что также повлияет на вашу способность воспроизводить звуки (или запустить любой другой код, если на то пошло).

Смежные вопросы