私はset.forを持っている特定の時間にオーディオファイルを再生しようとしていますが、私は、 "UIBackgroundModes" in info.plistとdidEnterBackground.ItsのbackgroundTaskidentifierで、シミュレータでは動作しますが、これを解決する。IPhoneの背景でオーディオを再生するには?
事前のおかげで...
私はset.forを持っている特定の時間にオーディオファイルを再生しようとしていますが、私は、 "UIBackgroundModes" in info.plistとdidEnterBackground.ItsのbackgroundTaskidentifierで、シミュレータでは動作しますが、これを解決する。IPhoneの背景でオーディオを再生するには?
事前のおかげで...
あなたはこのreference app with streaming and backgrounding of audioをチェックアウトすることができます。
編集:
添付ファイル付きのローカル通知の例。 。
- (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;
});
}
私が正しくあなたを理解していれば、あなたは、あなたのアプリがアクティブであり、その時点で前景化すると、特定の時間に関係なくサウンドを再生したいですか?あなたの唯一の(app review friendly)オプションは、slfの回答のようにローカル通知をスケジュールすることです。 UIBackgroundModesはあなたを助けません。オーディオバックグラウンドモードは、背景にあるときにコードを実行するためのモードです。は、前景にされたときにオーディオを再生するときだけです。使用例は音楽プレーヤーとラジオアプリです。
あなたのユースケースをより徹底的に説明すれば、より良い回答が得られるかもしれません。
これを参照してくださいhttp://stackoverflow.com/questions/7619794/play-music-in-background-in-iphone-using-avaudioplayer/7619816#7619816 –