大佬教程收集整理的这篇文章主要介绍了ios – 声音不能在iPad扬声器上播放,但在耳机和iPod Touch / iPhone扬声器上工作正常,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
这是问题所在:
当某个事件被触发时,我试图在游戏中播放@L_310_0@mp3文件(最多只有2秒),我使用AudioPlayer这样做,下面是代码块:
NSError *error; AVAudioPlayer *audioPlayer = [[[AVAudioPlayer alloc] initWithContentsOfURL:[[NSBundle mainBundle] URLForresource: @"ding" withExtension: @"mp3"] error:&error] autorelease]; if (error) { NSLog(@"Error creaTing audio player: %@",[error userInfo]); } else { BOOL success = [audioPlayer play]; // This always is "Play sound succeeded" NSLog(@"Play sound %@",success ? @"succeeded" : @"Failed"); }
当我在iPhone 4s,iTouch 3/4中运行此代码时,声音总是很清晰,但在iPad 1或iPad2中,扬声器没有声音.但是当我插入耳机时,发生了一些奇怪的事情,我的耳机有声音! iPad未处于静音模式且URL正确无误.
我很困惑为什么会这样.
PS:我尝试了以下代码(从HERE获得)输出音频输出端口类型:
CFDictionaryRef asCFType = nil; UInt32 dataSize = sizeof(asCFTypE); AudioSessionGetProperty(kAudioSessionProperty_AudioRouteDescription,&dataSize,&asCFTypE); NSDictionary *easyPeasy = (NSDictionary *)asCFType; NSDictionary *firstOutput = (NSDictionary *)[[easyPeasy valueForKey:@"RouteDetailedDescription_Outputs"] objectATindex:0]; NSString *portType = (NSString *)[firstOutput valueForKey:@"RouteDetailedDescription_PortType"]; NSLog(@"first output port type is: %@!",portTypE);
当我插入耳机时,输出是“第一个输出端口类型是耳机!”当我拔掉它时,输出结果是“第一个输出端口类型是扬声器!”
有人可以提供一些帮助或建议会很棒.
正如原始海报所述,您可以通过调用以下方式覆盖此行为:
[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayBACk error:nil];
AVAudioSession Reference建议设置AVAudioSessionCategoryPlayBACk类别:
以上是大佬教程为你收集整理的ios – 声音不能在iPad扬声器上播放,但在耳机和iPod Touch / iPhone扬声器上工作正常全部内容,希望文章能够帮你解决ios – 声音不能在iPad扬声器上播放,但在耳机和iPod Touch / iPhone扬声器上工作正常所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。