按下主页按钮时在后台播放音乐

Posted

技术标签:

【中文标题】按下主页按钮时在后台播放音乐【英文标题】:Play music in background when home button is press 【发布时间】:2015-09-03 07:25:51 【问题描述】:

我想播放音乐背景,为此我在 info.plist 中进行了更改。我将应用程序不在后台运行设置为应用程序播放音频所需的后台模式

我在 AppDelegate 中添加了这个:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 

    [[AVAudiosession sharedInstance] setDelegate:self];
    [[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback error:nil];
    [[AVAudioSession sharedInstance] setActive:YES error:nil];
    [[UIApplication sharedApplication] beginReceivingRemoteControlEvents];



- (void)applicationDidEnterBackground:(UIApplication *)application 
    AVAudioSession *audioSession = [AVAudioSession sharedInstance];
    NSError *error = nil;
    NSLog(@"Activating audio session");
    if (![audioSession setCategory:AVAudioSessionCategoryPlayback withOptions:AVAudioSessionCategoryOptionDuckOthers error:&error]) 
        NSLog(@"Unable to set audio session category: %@", error);
    
    BOOL result = [audioSession setActive:YES error:&error];
    if (!result) 
        NSLog(@"Error activating audio session: %@", error);
    
    [[UIApplication sharedApplication] beginReceivingRemoteControlEvents];


但是当我按下主页按钮时,音乐不再播放。请问我哪里错了?

【问题讨论】:

【参考方案1】:

并在 homeBtnEventMethod 上的 homeBtn 屏幕上播放音频

1.) 在 viewController.h #import <AVFoundation/AVAudioPlayer.h>

2.) @property (nonatomic, strong) AVAudioPlayer *theAudio;

3.) 在 viewController.m 在 vi​​ewDidLoad

 NSError *error = nil;
self.theAudio = [[AVAudioPlayer alloc] initWithContentsOfURL:soundURL error:&error];

4.) - (IBAction)homeBtnTpd [self.theAudio play];

【讨论】:

【参考方案2】:

您应该将Applications does not run in background 设置为否

【讨论】:

好的,我改变了,但结果相同。按下主页时音乐停止 你活跃了吗Audio Background Mode 在项目设置中:Capbabilities > Background mode

以上是关于按下主页按钮时在后台播放音乐的主要内容,如果未能解决你的问题,请参考以下文章

iOS:使用 Spotify SDK 在后台继续播放音乐

Phonegap 构建后台模式

覆盖后退按钮以充当主页按钮

多任务处理后 AVAudioPlayer 继续播放

播放按钮声音而不停止在后台运行的音乐

我放了一个主页按钮,将我放在应用程序的开头,但背景音乐在主要活动中播放了多次