如何在iPhone中播放背景音频?
问题描述:
我想在特定的时间播放音频文件,我已经set.for,我已经在info.plist中的“UIBackgroundModes”和didEnterBackground.Its中的backgroundtaskidentifier添加音频工作在模拟器,但不是在device.Can任何人都可以帮助解决此问题。如何在iPhone中播放背景音频?
在此先感谢...
答
你可以看看这个reference app with streaming and backgrounding of audio。
编辑:
一个本地通知瓦特/附加的声音的实施例。 More detail here。
- (void)applicationDidEnterBackground:(UIApplication *)application {
NSLog(@"Application entered background state.");
// bgTask is instance variable
NSAssert(self->bgTask == UIInvalidBackgroundTask, nil);
bgTask = [application beginBackgroundTaskWithExpirationHandler: ^{
dispatch_async(dispatch_get_main_queue(), ^{
[application endBackgroundTask:self->bgTask];
self->bgTask = UIInvalidBackgroundTask;
});
}];
dispatch_async(dispatch_get_main_queue(), ^{
while ([application backgroundTimeRemaining] > 1.0) {
NSString *friend = [self checkForIncomingChat];
if (friend) {
UILocalNotification *localNotif = [[UILocalNotification alloc] init];
if (localNotif) {
localNotif.alertBody = [NSString stringWithFormat:
NSLocalizedString(@"%@ has a message for you.", nil), friend];
localNotif.alertAction = NSLocalizedString(@"Read Message", nil);
localNotif.soundName = @"alarmsound.caf";
localNotif.applicationIconBadgeNumber = 1;
[application presentLocalNotificationNow:localNotif];
[localNotif release];
friend = nil;
break;
}
}
}
[application endBackgroundTask:self->bgTask];
self->bgTask = UIInvalidBackgroundTask;
});
}
答
如果我理解正确的话,你要在特定时间播放声音,无论你的应用程序是活动的,当时前景化?您唯一的(应用程序审查友好)选项是安排本地通知,如slf的答案。 UIBackgroundModes不会帮助你:音频背景模式仅用于当你预先播放音频时开始播放时允许执行代码,而后台播放。示例用法是音乐播放器和广播应用程序。
如果您更彻底地解释您的用例,我可能会有更好的答案。
看到这个http://stackoverflow.com/questions/7619794/play-music-in-background-in-iphone-using-avaudioplayer/7619816#7619816 – 2012-03-09 07:14:02