iOS音乐后台播放及锁屏信息显示



实现音乐的后台播放。以及播放时,能够控制其暂停,下一首等操作,以及锁屏图片歌曲名等的显示

此实例须要真机调试。效果图例如以下:



project下载:githubproject下载



实现步骤:

1、首先改动info.plist



2、其次引入两个须要的框架

#import <AVFoundation/AVFoundation.h>
#import <MediaPlayer/MediaPlayer.h>


3、设置播放器及后台播放

- (void)viewDidLoad {
    [super viewDidLoad];
//    设置后台播放
    [[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback error:nil];

//    设置播放器
    NSURL *url = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"那些花儿" ofType:@"mp3"] ];
    _player = [[AVPlayer alloc] initWithURL:url];
    [_player play];
    _isPlayingNow = YES;

    //后台播放显示信息设置
    [self setPlayingInfo];
}

#pragma mark - 接收方法的设置
- (void)remoteControlReceivedWithEvent:(UIEvent *)event {
    if (event.type == UIEventTypeRemoteControl) {  //推断是否为远程控制
        switch (event.subtype) {
            case  UIEventSubtypeRemoteControlPlay:
                if (!_isPlayingNow) {
                    [_player play];
                }
                _isPlayingNow = !_isPlayingNow;
                break;
            case UIEventSubtypeRemoteControlPause:
                if (_isPlayingNow) {
                    [_player pause];
                }
                _isPlayingNow = !_isPlayingNow;
                break;
            case UIEventSubtypeRemoteControlNextTrack:
                NSLog(@"下一首");
                break;
            case UIEventSubtypeRemoteControlPreviousTrack:
                NSLog(@"上一首 ");
                break;
            default:
                break;
        }
    }
}


4、设置后台播放时显示的东西,比如歌曲名字。图片等

- (void)setPlayingInfo {
//    <MediaPlayer/MediaPlayer.h>
    MPMediaItemArtwork *artWork = [[MPMediaItemArtwork alloc] initWithImage:[UIImage imageNamed:@"pushu.jpg"]];

    NSDictionary *dic = @{MPMediaItemPropertyTitle:@"那些花儿",
                          MPMediaItemPropertyArtist:@"朴树",
                          MPMediaItemPropertyArtwork:artWork
                          };
    [[MPNowPlayingInfoCenter defaultCenter] setNowPlayingInfo:dic];
}


5、远程控制设置

- (void)viewDidAppear:(BOOL)animated {
//    接受远程控制
    [self becomeFirstResponder];
    [[UIApplication sharedApplication] beginReceivingRemoteControlEvents];
}

- (void)viewDidDisappear:(BOOL)animated {
//    取消远程控制
    [self resignFirstResponder];
    [[UIApplication sharedApplication] endReceivingRemoteControlEvents];
}
时间: 2024-10-07 00:04:01

iOS音乐后台播放及锁屏信息显示的相关文章

iOS开发--QQ音乐练习,后台播放和锁屏界面

一.设置后台播放 首先允许程序后台播放 代码实现 1 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { 2 3 // 设置后台播放的代码,步骤 4 // 1.获取音频的会话 5 AVAudioSession *session = [AVAudioSession sharedInstance]; 6 // 2.设置后台播放类型

轻仿QQ音乐之音频歌词播放、锁屏歌词-b

先上效果图 歌词播放界面 音乐播放界面 锁屏歌词界面 一. 项目概述 前面内容实在是太基础..只想看知识点的同学可以直接跳到第三部分的干货 项目播放的mp3文件及lrc文件均来自QQ音乐 本文主要主要讲解锁屏歌词的实现,音频.歌词的播放网上资源略多,因此不做重点讲解,项目也是采取最简单的MVC+storyboard方式 项目GitHub地址: https://github.com/PengfeiWang666/WPFMusicPlayer 音乐模型-->WPFMusic /** 图片 */ @p

iOS_33_音乐后台播放

音乐后台播放:三个步骤 在appDelegate中的didEnterBackground方法中实现: app的beginBackgroundTaskWithExpirationHandler方法 开启后台任务,让程序在后台运行 - (void)applicationDidEnterBackground:(UIApplication *)application { // Use this method to release shared resources, save user data, inv

iOS AVPlayer 后台播放问题自动停止问题 防止应用被后台挂起方法

iOS AVPlayer 后台播放问题自动停止问题 防止应用被后台挂起方法 2016-09-08 16:16 1597人阅读 评论(0) 收藏 举报  分类: iOS 开发笔记(37)  版权声明:本文为博主原创文章,未经博主允许不得转载. 目录(?)[+] 1.创建播放器时创建AVAudioSession [objc] view plain copy AVAudioSession *session = [AVAudioSessionsharedInstance]; [session setCa

html5 audio手机播放,锁屏或程序后台运行音乐不播放

今天做一个手机播放页面,发现在ios上只要锁屏或切换其他程序音乐就关闭,找了好久才发现原因. 因为页面之播放一个文件所以我这样写的 <audio id="audio" autoplay="true" controls="" preload="preload"> </audio> 再通过js设置mp3地址 audio.setAttribute("src","http://xx

ios开发实现取消自动锁屏

1 [UIApplication sharedApplication].idleTimerDisabled=YES;不自动锁屏 2 [UIApplication sharedApplication].idleTimerDisabled=NO;自动锁屏

iOS 实现后台 播放音乐声音 AVAudioPlayer

1.步骤一:在Info.plist中,添加"Required background modes"键,value为:App plays audio 或者: 步骤二: - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{    self.window = [[[UIWindow alloc] initWithFrame:[[U

音乐类型APP:如何添加正播放的音乐进度,歌手名,图片等信息显示 到锁屏和控制中心

使用的是豆瓣的音频播放类 导入头文件#import <MediaPlayer/MediaPlayer.h> #import <MediaPlayer/MPNowPlayingInfoCenter.h> #import <MediaPlayer/MPMediaItem.h> 远程控制事件接收与处理- (void)viewWillAppear:(BOOL)animated{[super viewWillAppear:animated];[[UIApplication sha

swift锁屏播放,音乐进度更新,专辑,歌手名显示

我自己用的音乐播放器是自带的AVPlayer 导入头文件#import <MediaPlayer/MediaPlayer.h> 远程控制事件接收与处理- (void)viewWillAppear:(BOOL)animated{[super viewWillAppear:animated];[[UIApplication sharedApplication] beginReceivingRemoteControlEvents];[self becomeFirstResponder];}-(voi