2012-03-28 141 views
1

什么是“正确”的方式来获得,即使用户的静音/静音开关设定为静音我的应用程序来播放音频/振动?的iOS:在静音模式下播放音频

一些背景: 我实际上已经在调试阶段工作,但是当我将我的应用程序提交给苹果公司,然后从应用程序商店下载它时,音频在无声模式下被禁用!下面是我得到了它在调试阶段的工作:

UInt32 sessionCategory = kAudioSessionCategory_MediaPlayback; 
AudioSessionSetProperty(kAudioSessionProperty_AudioCategory, 
         sizeof(sessionCategory), &sessionCategory); 

音频使用玩过:

NSString *path = [[NSBundle mainBundle] pathForResource:fileName ofType:@"mp3"]; 
AVAudioPlayer *theAudio = [[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:path] error:NULL]; 
theAudio.delegate = self; 
[theAudio play]; 
+0

为什么你想要应用程序播放声音,当用户不想听到他们?你确定这是你的用户想要的吗? – Hyperbole 2012-03-28 20:25:34

+0

我知道有关于规则的“你不应该在静音模式音频这是一个不好的用户体验,”但我的应用程序是一种例外,因为它的唯一目的是使声音,以及“糟糕的用户体验”实际上来自用户打“玩”,期望听到声音,而不是什么都没有,没有意识到他们的无声开关被设置为无声。 – user1221973 2012-03-28 21:11:26

+0

也许检测静音状态,并通知用户,他们将不会听到声音,直到他们取消静音他们的设备。无论如何,这更符合苹果的HIG。 – Hyperbole 2012-03-28 21:12:28

回答

0

我认为它做同样的事情,但你尝试过,设置像这样throught AVFoundation设置?

[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback error:nil]; 
    [[AVAudioSession sharedInstance] setActive: YES error: nil]; 
+0

这同样适用,但我想不能保证在调试阶段它不会失败。 – user1221973 2012-03-28 21:28:41