当应用程序进入后台时处理事件

时间:2012-07-18 10:28:43

标签: objective-c xcode cocoa-touch

我想要的是我的应用程序应该在进入后台时停止播放声音(当按下主页按钮时)。我在appDelegate.m中这样做了,但它说use of undeclared identifier 'soundID'

- (void)applicationDidEnterBackground:(UIApplication *)application
{
    AudioServicesDisposeSystemSoundID(soundID)
}

我已将VC导入委托,并且还将soundID作为属性公开。我哪里错了?请帮忙。

   NSString *path = [[NSBundle mainBundle] pathForResource:@"something" ofType:@"wav"];
    NSURL *url = [NSURL fileURLWithPath:path]; 
    AudioServicesCreateSystemSoundID((CFURLRef)url, &soundID);
    AudioServicesPlaySystemSound(soundID);

1 个答案:

答案 0 :(得分:0)

如果你想要这个功能,你应该去你的app主plist文件(可能名为 [your-app-name]-Info.plist )并找到一个密钥:

Required background modes

并删除值

App plays audio

这应该可以解决问题。

---------------- 修改

试试这个:

NSString* path = [[NSBundle mainBundle] pathForResource:@"myWavFile" ofType:@"wav" inDirectory:@"DirectoryName"];
self.player = [AVPlayer playerWithURL:[NSURL fileURLWithPath:path]];
[self.player play];

自我玩家是:

@property (strong, nonatomic) AVPlayer *player;

您还应该:

#import <AVFoundation/AVFoundation.h>

并将此框架添加到您的项目中。