如何在iPhone中播放背景音频?

问题描述:

我想在特定的时间播放音频文件,我已经set.for,我已经在info.plist中的“UIBackgroundModes”和didEnterBackground.Its中的backgroundtaskidentifier添加音频工作在模拟器,但不是在device.Can任何人都可以帮助解决此问题。如何在iPhone中播放背景音频?

在此先感谢...

+0

看到这个http://stackoverflow.com/questions/7619794/play-music-in-background-in-iphone-using-avaudioplayer/7619816#7619816 – 2012-03-09 07:14:02

你可以看看这个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; 
    }); 

} 
+0

它的工作原理,如果我们进入后台,而音频播放,但我想要在输入应用程序后开始播放音频到backgrouond中。任何人都可以打电话给我该怎么做 – Ann 2012-03-03 09:42:33

+0

用户通过双击主屏幕按钮并向右滑动或从锁定屏幕手动启动音频控制。或者,你安排一个声音剪辑的本地通知,而不是音频流 – slf 2012-03-04 16:46:57

+0

谢谢他的工作很好..... – Ann 2012-03-05 05:48:49

如果我理解正确的话,你要在特定时间播放声音,无论你的应用程序是活动的,当时前景化?您唯一的(应用程序审查友好)选项是安排本地通知,如slf的答案。 UIBackgroundModes不会帮助你:音频背景模式仅用于当你预先播放音频时开始播放时允许执行代码,而后台播放。示例用法是音乐播放器和广播应用程序。

如果您更彻底地解释您的用例,我可能会有更好的答案。