iOS 锁屏音频播放控制及音频信息设置 —— HERO博客

iOS 后台音频播放控制,锁屏音频播放控制及音频信息设,效果图如下:

iOS 锁屏音频播放控制及音频信息设置 —— HERO博客_第1张图片 iOS 锁屏音频播放控制及音频信息设置 —— HERO博客_第2张图片


1.在 AppDelegate.m 中实现下面方法,获取音频播放、暂停、上一首、下一首点击事件:

- (BOOL)canBecomeFirstResponder
{
    return YES;
}

//锁屏界面控制监听
- (void)remoteControlReceivedWithEvent:(UIEvent *)event
{
    if (event.type == UIEventTypeRemoteControl) {
        switch (event.subtype) {
            case UIEventSubtypeRemoteControlPlay:
            {
                //播放
                NSLog(@"Play");
                break;
            }
            case UIEventSubtypeRemoteControlPause:
            {
                //暂停
                NSLog(@"Pause");
                break;
            }
            case UIEventSubtypeRemoteControlNextTrack:
            {
                //下一首
                NSLog(@"Next");
                break;
            }
            case UIEventSubtypeRemoteControlPreviousTrack:
            {
                //上一首
                NSLog(@"Previous");
                break;
            }
            default:
                break;
        }
    }
}


2.设置锁屏信息:

//设置锁屏信息
- (void)setLockingInfo
{
    Class playingInfoCenter = NSClassFromString(@"MPNowPlayingInfoCenter");
    
    if (playingInfoCenter) {
        //音频模型
        HWMusicModel *model = [HWMusicTool playingMusic];
        
        //数据信息
        NSMutableDictionary *songInfo = [[NSMutableDictionary alloc] init];
        
        //图片
        MPMediaItemArtwork *albumArt = [[MPMediaItemArtwork alloc] initWithImage:[UIImage imageWithUrlString:model.icon]];
        [songInfo setObject:albumArt forKey:MPMediaItemPropertyArtwork];
        
        //当前播放时间
        [songInfo setObject:[NSNumber numberWithDouble:[[[HWMusicTool shareMusicTool] Player] currentPlaybackTime]] forKey:MPNowPlayingInfoPropertyElapsedPlaybackTime];
        //速率
        [songInfo setObject:[NSNumber numberWithFloat:1.0f] forKey:MPNowPlayingInfoPropertyPlaybackRate];
        //剩余时长
        [songInfo setObject:[NSNumber numberWithDouble:[[[HWMusicTool shareMusicTool] Player] duration]] forKey:MPMediaItemPropertyPlaybackDuration];
        
        //设置标题
        [songInfo setObject:model.title forKey:MPMediaItemPropertyTitle];
        
        //设置副标题
        [songInfo setObject:@"周杰伦 - 周杰伦的床边故事" forKey:MPMediaItemPropertyArtist];
        
        //设置音频数据信息
        [[MPNowPlayingInfoCenter defaultCenter] setNowPlayingInfo:songInfo];
    }
}



你可能感兴趣的:(iOS,Objective-C技术分享)