【发布时间】:2012-04-12 09:52:19
【问题描述】:
即使用户的静音/静音开关设置为静音/振动,让我的应用播放音频的“正确”方法是什么?
一些背景: 我实际上是在调试阶段让它工作的,但是当我将我的应用程序提交给 Apple 然后从应用程序商店下载它时,音频在静音模式下被禁用!这是我在调试阶段的工作方式:
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];
【问题讨论】:
-
为什么要让应用在用户不想听到的时候播放声音?您确定这是您的用户想要的吗?
-
我知道有一条规则是“你不应该在静音模式下播放音频,这是一种糟糕的用户体验”,但我的应用程序有点例外,因为它的唯一目的是发出声音,而“糟糕的用户体验”实际上来自于用户点击“播放”,期望听到声音,却一无所获,却没有意识到他们的静音开关设置为静音。
-
也许检测到静音状态并通知用户他们在取消静音之前不会听到声音。无论如何,这更符合 Apple 的 HIG。
-
@Hyperbole 这是个好主意,感谢您的建议。
标签: iphone objective-c ipad ipod