从iPod的图书馆播放AVAudio而设备已锁定(Playing AVAudio from iPod

2019-09-19 14:53发布

只是一个快速的问题。

我已经建立了我的程序能够发挥AVAudioPlayerAVPlayer的背景下,这是工作的罚款。 我可以播放一首歌曲,锁定我的屏幕和声音将继续发挥。

我遇到了有关呼吁麻烦[AVPlayer play] ,而我的屏幕已经被锁定。 这最终导致没有正在播放的音乐。

Answer 1:

你需要告诉您的播放器监听控制事件:

- (void)viewDidAppear:(BOOL)animated {
    [super viewDidAppear:animated];

    [[UIApplication sharedApplication] beginReceivingRemoteControlEvents];
    [self becomeFirstResponder];
}
- (BOOL)canBecomeFirstResponder {
    return YES;
}
- (void)viewWillDisappear:(BOOL)animated {
    [super viewWillDisappear:animated];
    [[UIApplication sharedApplication] endReceivingRemoteControlEvents];
    [self resignFirstResponder];
}

然后你就可以对他们像这样:

- (void)remoteControlReceivedWithEvent:(UIEvent *)event {
    if (event.type == UIEventTypeRemoteControl) 
        {
        if (event.subtype == UIEventSubtypeRemoteControlPlay) 
            {
            [AVPlayer play];
            } 

        else if (event.subtype == UIEventSubtypeRemoteControlPause) 
            {
            [AVPlayer pause];
            } 
        else if (event.subtype == UIEventSubtypeRemoteControlTogglePlayPause) 
            {
                if (!AVPlayer.playing) 
                    {
                        [AVPlayer play];

                    } else if (AVPlayer.playing) 
                    {
                        [AVPlayer pause];
                    }
            }
        else if (event.subtype == UIEventSubtypeRemoteControlNextTrack)
            {
            [self myNextTrackMethod];
            }
        else if (event.subtype == UIEventSubtypeRemoteControlPreviousTrack)
            {
            [self myLastTrackMethod];
            }
        }
}


文章来源: Playing AVAudio from iPod Library while device is locked