IOS GKVoiceChat iphone
Posted
技术标签:
【中文标题】IOS GKVoiceChat iphone【英文标题】: 【发布时间】:2014-02-15 16:09:34 【问题描述】:我在 iphone 上遇到了 GKVoiceChat 的问题。当我用 iphone 和 ipad 测试语音聊天时,ipad 的输出声音通过扬声器响亮而清晰,但是当谈到 iphone 输出语音时,我必须把它放在我的耳朵里才能听到声音。
我可以选择音频输出,这样我就可以从扩音器中听到聊天了吗?
- (void) establishChat
audioChat = YES;
chat = [activeMatch voiceChatWithName:@"com.fazan.chat"];
if (!chat)
NSLog(@"Error establishing chat!");
return;
chat.playerStateUpdateHandler = ^(NSString *playerID, GKVoiceChatPlayerState state)
switch (state)
case GKVoiceChatPlayerSpeaking:
NSLog(@"***Speaking: %@", playerID);
// Highlight player's picture
break;
case GKVoiceChatPlayerSilent:
NSLog(@"***Silent: %@", playerID);
// Dim player's picture
break;
case GKVoiceChatPlayerConnected:
NSLog(@"***Connected: %@", playerID);
// Show player name/picture
break;
case GKVoiceChatPlayerDisconnected:
NSLog(@"***Disconnected: %@", playerID);
// Hide player name/picture
break;
;
chat.active = NO; // disable mic by setting to NO
chat.volume = 1.0f; // adjust as needed.
NSLog(@"Connecting to channel");
[chat start]; // stop with [chat end];
NSLog(@"Chat: %@", chat.description);
NSLog(@"Participants: %@", chat.playerIDs);
// Establishing team chats and direct chat
/*
e.g. directChat = [match voiceChatWithName:@"Private Channel 1"];
Each unique name specifies the chat
*/
// muting: [chat setMute:YES/NO forPlayer: playerID];
【问题讨论】:
【参考方案1】:这样做的原因是 iPhone 默认将音频路由到“接收器”扬声器(您耳边的那个)而不是底部的内置扬声器,当您还启用了输入时(如双向聊天)在游戏中)。 iPad 没有“接收器”扬声器,所以它只连接到内置扬声器。
您可以使用 Audiosession API 覆盖此默认设置。在将会话类别设置为 PlayAndRecord 后立即执行此操作:
UInt32 audioRouteOverride = kAudioSessionOverrideAudioRoute_Speaker;
AudioSessionSetProperty(kAudioSessionProperty_OverrideAudioRoute, sizeof(audioRouteOverride), &audioRouteOverride);
不过,请注意——通过扬声器播放聊天会导致一些反馈,因为从扬声器发出的音频将被麦克风拾取。最好使用带有内置麦克风的耳机来处理这种事情......
【讨论】:
以上是关于IOS GKVoiceChat iphone的主要内容,如果未能解决你的问题,请参考以下文章
iOS 8、iOS 9、iOS 10 和 iOS 11 上的 UITabBar 的高度是多少?