在iOS创建的应用程序中,通过扬声器强制音频输出,但不';应用程序在后台时无法工作
我想实现,当我在iPhone中插入耳机/耳机并播放任何音乐时,应该从扬声器而不是耳机播放音乐。 所以当我的应用程序在前台时,使用下面的代码可以很好地工作。但当我的应用程序在后台运行时,这段代码不起作用在iOS创建的应用程序中,通过扬声器强制音频输出,但不';应用程序在后台时无法工作,ios,objective-c,audio,avaudiosession,Ios,Objective C,Audio,Avaudiosession,我想实现,当我在iPhone中插入耳机/耳机并播放任何音乐时,应该从扬声器而不是耳机播放音乐。 所以当我的应用程序在前台时,使用下面的代码可以很好地工作。但当我的应用程序在后台运行时,这段代码不起作用 我想在3种情况下实现这个功能 当应用程序位于前台时 当应用程序处于后台时 当应用程序从后台删除时 请给我一个解决方案 我使用了下面的代码 + (void) initAudioSessionRouting{ // Called once to route all audio thr
- 我想在3种情况下实现这个功能
- 当应用程序位于前台时
- 当应用程序处于后台时
- 当应用程序从后台删除时
+ (void) initAudioSessionRouting{
// Called once to route all audio through speakers, even if something's plugged into the headphone jack
static BOOL audioSessionSetup = NO;
if (audioSessionSetup == NO) {
// set category to accept properties assigned below
NSError *sessionError = nil;
[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayAndRecord withOptions:AVAudioSessionCategoryOptionDefaultToSpeaker error: &sessionError];
// Doubly force audio to come out of speaker
UInt32 audioRouteOverride = kAudioSessionOverrideAudioRoute_Speaker;
AudioSessionSetProperty (kAudioSessionProperty_OverrideAudioRoute, sizeof(audioRouteOverride), &audioRouteOverride);
// fix issue with audio interrupting video recording - allow audio to mix on top of other media
UInt32 doSetProperty = 1;
AudioSessionSetProperty (kAudioSessionProperty_OverrideCategoryMixWithOthers, sizeof(doSetProperty), &doSetProperty);
// set active
[[AVAudioSession sharedInstance] setDelegate:self];
[[AVAudioSession sharedInstance] setActive: YES error: nil];
// add listener for audio input changes
AudioSessionAddPropertyListener (kAudioSessionProperty_AudioRouteChange, onAudioRouteChange, nil );
AudioSessionAddPropertyListener (kAudioSessionProperty_AudioInputAvailable, onAudioRouteChange, nil );
}
// Force audio to come out of speaker
[[AVAudioSession sharedInstance] overrideOutputAudioPort:AVAudioSessionPortOverrideSpeaker error:nil];
// set flag
audioSessionSetup = YES;}
提前感谢您的应用程序不控制音频。控制服务优先选择前台应用程序,因此当您的应用程序位于后台时,它不会产生任何影响。真的,这是件好事。如果我已插入耳机,我不希望从其他任何地方接收音频。@Avi u r right。但我想,当耳机插入iPhone时,实用地改变内置耳机的设置,使任何声音或音乐都能在扬声器中自动播放,你知道我该如何实现吗?@monikaptel确实找到了解决方案。我也面临着同样的问题