ios – 声音不能在iPad扬声器上播放,但在耳机和iPod TouchiPhone扬声器上工作正常

ios – 声音不能在iPad扬声器上播放,但在耳机和iPod TouchiPhone扬声器上工作正常,第1张

概述我知道这是一个已被问过多次的问题,我已经检查了大部分与SO相关的答案,但我没有找到解决问题的正确答案. 这是问题所在: 当某个事件被触发时,我试图在游戏中播放一个mp3文件(最多只有2秒),我使用AudioPlayer这样做,下面是代码块: NSError *error;AVAudioPlayer *audioPlayer = [[[AVAudioPlayer alloc] initWithCo 我知道这是一个已被问过多次的问题,我已经检查了大部分与SO相关的答案,但我没有找到解决问题的正确答案.

这是问题所在:

当某个事件被触发时,我试图在游戏中播放一个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);

当我插入耳机时,输出是“第一个输出端口类型是耳机!”当我拔掉它时,输出结果是“第一个输出端口类型是扬声器!”

有人可以提供一些帮助或建议会很棒.

解决方法 有一个代码更改解决方案,但也是最终用户解决方案:将“Ring / Silent开关”打开.具体来说,问题是如果手机处于静音模式,AVAudioSessions的默认设置AVAudioSessioncategorySoloAmbIEnt将保持静音.

正如原始海报所述,您可以通过调用以下方式覆盖此行为:

[[AVAudioSession sharedInstance] setcategory:AVAudioSessioncategoryPlayback error:nil];

AVAudioSession Reference建议设置AVAudioSessioncategoryPlayback类别:

For playing recorded music or other sounds that are central to the successful use of your app.

总结

以上是内存溢出为你收集整理的ios – 声音不能在iPad扬声器上播放,但在耳机和iPod Touch / iPhone扬声器上工作正常全部内容,希望文章能够帮你解决ios – 声音不能在iPad扬声器上播放,但在耳机和iPod Touch / iPhone扬声器上工作正常所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1075698.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-26
下一篇 2022-05-26

发表评论

登录后才能评论

评论列表(0条)

保存