iOS实现锁屏页面控制音乐播放

本文实例为大家分享了iOS锁屏页面控制音乐播放的具体代码,供大家参考,具体内容如下

//1、调整音频会话设置,确保应用进入后台或静音开关已开启时音频仍将继续播放

//2、锁屏状态下显示媒体信息

//3、锁屏上的空间可以控制音频播放

#import "ViewController.h"

#import <AVFoundation/AVFoundation.h>

#import <MediaPlayer/MediaPlayer.h>

@interface ViewController ()

@property (nonatomic, span) AVAudioPlayer *audioPlayer;

@property (weak, nonatomic) UIButton *playButton;

@end

@implementation ViewController

- (void)viewDidLoad {

[super viewDidLoad];

UIButton * playButton = [UIButton buttonWithType:UIButtonTypeSystem];

playButton.frame = CGRectMake(0, 0, 200, 40);

playButton.center = self.view.center;

[playButton setTitle:@"在后台播放音频" forState:UIControlStateNormal];

[playButton addTarget:self action:@selector(playMusicInBackground:) forControlEvents:UIControlEventTouchUpInside];

[self.view addSubview:playButton];

NSError *playerInitError = nil;

NSString *audioPath =

[[NSBundle mainBundle] pathForResource:@"background_audio"

ofType:@"mp3"];

NSURL *audioURL = [NSURL fileURLWithPath:audioPath];

self.audioPlayer = [[AVAudioPlayer alloc]

initWithContentsOfURL:audioURL

error:&playerInitError];

AVAudioSession *session = [AVAudioSession sharedInstance];

NSError *activeError = nil;

if (![session setActive:YES error:&activeError]) {

NSLog(@"Failed to set active audio session!");

}

//No.1

//开始写代码,调整音频会话设置,确保即便应用进入后台或静音开关已开启,音频仍将继续播放

NSError *categoryError = nil;

[session setCategory:AVAudioSessionCategoryPlayback error:&categoryError];

//end_code

}

- (void)playMusicInBackground:(id)sender {

if ([self.audioPlayer isPlaying]) {

[self.audioPlayer stop];

[self.playButton setTitle:@"正在播放音乐"

forState:UIControlStateNormal];

} else {

UIImage *lockImage = [UIImage imageNamed:@"belongToMe.jpg"];

MPMediaItemArtwork *artwork =

[[MPMediaItemArtwork alloc] initWithImage:lockImage];

NSDictionary *mediaDict =

@{

MPMediaItemPropertyTitle: @"BackgroundTask Audio",

MPMediaItemPropertyMediaType: @(MPMediaTypeAnyAudio),

MPMediaItemPropertyPlaybackDuration:

@(self.audioPlayer.duration),

MPNowPlayingInfoPropertyPlaybackRate: @1.0,

MPNowPlayingInfoPropertyElapsedPlaybackTime:

@(self.audioPlayer.currentTime),

MPMediaItemPropertyAlbumArtist: @"Some User",

MPMediaItemPropertyArtist: @"Some User",

MPMediaItemPropertyArtwork: artwork };

[self.audioPlayer play];

[self.playButton setTitle:@"停止播放后台音乐"

forState:UIControlStateNormal];

//No.2

//开始写代码,将媒体信息显示在锁定屏幕上,并使锁屏上控件可以控制音频播放

[[UIApplication sharedApplication] beginReceivingRemoteControlEvents];

//end_code

}

}

//No.3

//开始写代码,响应远程控制,使得进入锁屏状态后可以控制音乐“播放”和“暂停”

- (void) remoteControlReceivedWithEvent: (UIEvent *) receivedEvent {

if (receivedEvent.type == UIEventTypeRemoteControl) {

switch (receivedEvent.subtype) {

case UIEventSubtypeRemoteControlPlay:

[self.audioPlayer play];

break;

case UIEventSubtypeRemoteControlPause:

[self.audioPlayer pause];

break;

default:

NSLog(@"没有处理过这个事件------receivedEvent.subtype==%ld",(long)receivedEvent.subtype);

break;

}

}

}

//end_code

- (void)didReceiveMemoryWarning {

[super didReceiveMemoryWarning];

}

@end

以上是 iOS实现锁屏页面控制音乐播放 的全部内容, 来源链接: utcz.com/z/328224.html

回到顶部