在过去的几个小时里,我一直在搞砸这个问题,但我仍然无法找到解决方案。我正在创建一个使用 twilio 两个连接到用户的应用程序。我可以通过以下方式强制将音频输出到扬声器:
UInt32 audioRouteOverride = kAudioSessionOverrideAudioRoute_Speaker;
AudioSessionSetProperty (kAudioSessionProperty_OverrideAudioRoute,sizeof (audioRouteOverride),&audioRouteOverride);
问题是当我使用 MPMoviePlayerController 播放来自网络的流时。它接管音频会话并再次通过耳机强制它返回。我仍然可以与用户交谈,但我只能使用耳机(电话)扬声器来听到他们的声音。我已经尝试过许多不同的方式强制回到扬声器,但似乎没有任何效果,显然阻止 MPMoviePlayerController 使用 AudioSession 的能力已被弃用。关于如何解决这个问题的任何想法?我的代码在这里:
UInt32 sessionCategory = kAudioSessionCategory_PlayAndRecord;
AudioSessionSetProperty(kAudioSessionProperty_AudioCategory, sizeof(sessionCategory), &sessionCategory);
UInt32 audioRouteOverride = kAudioSessionOverrideAudioRoute_Speaker;
AudioSessionSetProperty (kAudioSessionProperty_OverrideAudioRoute,sizeof (audioRouteOverride),&audioRouteOverride);
_streamPlayer = [[MPMoviePlayerController alloc] initWithContentURL:[NSURL URLWithString:fullURL]];
[[_streamPlayer view] setFrame: [self.view bounds]];
[self.view addSubview: [_streamPlayer view]];
[_streamPlayer play];
提前感谢您的帮助。