2011-09-14 49 views
2

我正在创建一个非常简单的应用程序。 2个按钮,都播放声音。每个剪辑持续1秒钟并回应“TouchUpInside”。他们是我在iTunes中转换的.caf文件。为什么音频在模拟器中工作,但不在我的iPad上?

这里是我的代码,再次,它工作在模拟器,但无法在设备上:

enter code here- (void)viewDidLoad { 

    NSLog(@"InView did load"); 

AudioServicesCreateSystemSoundID ((CFURLRef)[NSURL fileURLWithPath:[[NSBundle mainBundle]pathForResource:@"bigaif" ofType:@"caf"]], &systemSoundID); 


    AudioServicesCreateSystemSoundID((CFURLRef)[NSURL fileURLWithPath:[[NSBundle mainBundle] 
                    pathForResource: @"smallwav" ofType:@"wav"]],                
                    &systemSoundIDTwo); 

}

-(IBAction) playSound:(id) sender { 
AudioServicesPlaySystemSound(systemSoundID); 
} 

-(IBAction) playSoundTwo:(id) sender { 
AudioServicesPlaySystemSound(systemSoundIDTwo); 

}

+0

文件名没有问题吗?面对mac被设置为casemapping的事实,并且由于文件名中的拼写错误,情况相同 – aknew

+0

嗯,我自己弄明白了。我想发布解决方案,以便其他人不会犯这个错误。使用“SystemSound”时,确保您的设置中启动了系统声音。 – JoshD

回答

4

我发现我的答案。我使用的是SystemSound,你知道什么,我的设备设置中我的系统听起来很静音。

+0

使用音量按钮旁边设备侧面的静音按钮也可以更改此设置。 – Radek

+0

有点类似的问题。通过进入设置并调高声音 - >铃声和提醒 – northernman

0

这也发生在我身上。声音在模拟器中播放得很好,但不在设备上播放。我试图用多种不同的方式播放声音。我同时使用了SystemSound和AVAudioPlayer。我甚至downloaded the code from a Mobile Orchard教程,并有相同的结果。代码示例在模拟器中工作正常,但不会在设备上播放。

2小时后,我在iPad上双击home按钮,向左滚动至声控,然后点击左侧的扬声器图标。通过扬声器图标放置斜线以指示系统音量已静音。然后我再次敲击,斜线消失了,然后我可以通过设备播放声音。

所以基本上,我必须使用这种方法切换设备的静音状态,并将iPad上的某些东西重置到我可以听到声音的位置。

请注意,这是在iOS6上。

3

我有同样的问题。我没有添加对AudioToolbox.framework的链接引用,但它仍然在模拟器上工作。 我添加了它,它在设备上的应用程序的前景中播放。

然后我想让它在后台播放声音。在info.plist“所需的背景模式”中添加键“播放音频”。这让它在后台工作。

10

在我的代码中查找过去30分钟的错误后,我发现iPad侧面的静音按钮已打开。检查之前尝试一些奇特的解决方案。

花30分钟...

+2

geezzzz ...,upvoted谢谢! – PeterPurple

+0

传奇......等待它... dary。非常感谢 :) –

相关问题