屏幕操作系统锁定时如何使用AVAudioPlayer播放音乐

时间:2011-07-15 12:27:55

标签: iphone audio avaudioplayer background-process

当屏幕被锁定时,我需要使用AVAudioPlayer播放一个简单的声音。我该怎么做才能帮助

2 个答案:

答案 0 :(得分:0)

之前已回复here。事情建议您需要像在此示例中那样设置音频会话

UInt32 category = kAudioSessionCategory_MediaPlayback;
OSStatus result = AudioSessionSetProperty(kAudioSessionProperty_AudioCategory,
                                                                                sizeof(category), &category);

if (result){
        DebugLog(@"ERROR SETTING AUDIO CATEGORY!\n");
}

result = AudioSessionSetActive(true);
if (result) {
        DebugLog(@"ERROR SETTING AUDIO SESSION ACTIVE!\n");
}

答案 1 :(得分:0)

首先:将以下框架添加到您的项目中

AudioToolbox, CoreAudio的, 媒体播放器 AVFoundation。

enter image description here 第二:将info.plist文件添加为新密钥

所需的背景模式=应用播放音频

enter image description here

第三:创建一个名为keepAwakeForAudio的方法,并在播放音频后立即调用

- (无效)keepAwakeForAudio

{     UInt32 sessionCategory = kAudioSessionCategory_MediaPlayback;     AudioSessionSetProperty(kAudioSessionProperty_AudioCategory,sizeof(sessionCategory),& sessionCategory);     AudioSessionSetActive(真); }

//////

NSURL * url = [NSURL fileURLWithPath:[NSString stringWithFormat:@“%@ / rain1_Rain_on_Street.m4a”,[[NSBundle mainBundle] resourcePath]]];

NSError *error;
audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:url error:&error];
audioPlayer.numberOfLoops = -1;

if (audioPlayer == nil)
    NSLog([error description]);


else
    [audioPlayer play];

[self **keepAwakeForAudio**];