在设置这个锁屏之前,首先得设置应用支持后台音乐播放,TAGETS->Info->Required background modes->App plays audio or streams audio/video using AirPlay

或者在plist中设置如上边数据。

1.添加self为第一响应者,并设置接收远程控制

    [self becomeFirstResponder];
[[UIApplication sharedApplication] beginReceivingRemoteControlEvents]; -(BOOL)becomeFirstResponder{
    return YES;
}

2.利用data初始化音乐播放器AVAudioPlayer,并设置prepareToPlay。

self.AudioPlayer = [[AVAudioPlayer alloc]initWithData:data error:&error];
[self.AudioPlayer prepareToPlay];

3.在播放/暂停的按钮控制中,设置音乐锁屏信息,一般每次播放和暂停的时候刷新锁屏信息

- (IBAction)clickbtn:(id)sender {
UIButton *btn = sender;
if (btn.tag == ) {
[self.AudioPlayer play]; }else{
[self.AudioPlayer pause];
}
btn.tag *= -;
if (self.AudioPlayer.isPlaying) {
NSLog(@"yes");
}else{
NSLog(@"no");
} NSMutableDictionary *songInfo = [ [NSMutableDictionary alloc] init];
//锁屏图片
UIImage *img = [UIImage imageNamed:@"logo152"];
if (img) {
MPMediaItemArtwork *albumArt = [[MPMediaItemArtwork alloc]initWithImage:img];
[songInfo setObject: albumArt forKey:MPMediaItemPropertyArtwork ];
}
//锁屏标题
NSString *title = @"music";
[songInfo setObject:[NSNumber numberWithFloat:] forKey:MPMediaItemPropertyPlaybackDuration];
[songInfo setObject:title forKey:MPMediaItemPropertyTitle];
[songInfo setObject:title forKey:MPMediaItemPropertyAlbumTitle];
[[MPNowPlayingInfoCenter defaultCenter] setNowPlayingInfo:songInfo ]; }

4.添加接收远程控制的方法

- (void)remoteControlReceivedWithEvent:(UIEvent *)event
{
switch (event.subtype)
{
case UIEventSubtypeRemoteControlPlay:
NSLog(@"%s-%d",__FUNCTION__,__LINE__);
//play
[self.AudioPlayer play];
break;
case UIEventSubtypeRemoteControlPause:
// NSLog(@"%s-%d",__FUNCTION__,__LINE__);
//pause
[self.AudioPlayer pause];
break;
case UIEventSubtypeRemoteControlStop:
NSLog(@"%s-%d",__FUNCTION__,__LINE__);
//stop
break;
default:
break;
}
}

AVAudioPlayer的锁屏播放控制和锁屏播放信息显示的更多相关文章

  1. Egret--设置全屏,控制浏览器全屏

    1, 手机浏览器打开的项目的时候,浏览器的虚拟按键/标题栏, 使得即便设置全屏也没有变成全屏(好像JS 中有方法向浏览器请求全屏) 2, 加载资源, 关闭后卸载, 再次进入游戏依然很快.不过登陆游戏的 ...

  2. AVPlayer 音乐播放后台播放,以及锁屏主题设置

    第一步:在appDelegate中通知app支持后台播放:在方法 - (BOOL)application:(UIApplication *)application didFinishLaunching ...

  3. 数据库并发事务控制四:postgresql数据库的锁机制二:表锁 <转>

    在博文<数据库并发事务控制四:postgresql数据库的锁机制 > http://blog.csdn.net/beiigang/article/details/43302947 中后面提 ...

  4. android黑科技系列——修改锁屏密码和恶意锁机样本原理分析

    一.Android中加密算法 上一篇文章已经介绍了Android中系统锁屏密码算法原理,这里在来总结说一下: 第一种:输入密码算法 将输入的明文密码+设备的salt值,然后操作MD5和SHA1之后在转 ...

  5. 腾讯X5内核使用详解(X5内核播放器使用如何去除控制栏全屏播放)以及一些注意事项

    例子下载地址 https://www.lanzous.com/i2zsv5g      GIT就不用了麻烦的不行 本人安卓刚学 就上X5内核弄了老长时间由于对maven 和idea不熟悉刚开始导包都是 ...

  6. iOS音频与视频的开发(一)-使用AVAudioPlayer播放音乐、使用AVPlayerViewController播放视频

    iOS的多媒体支持非常强大,它提供了多套支持多媒体的API,无论是音频.视频的播放,还是录制,iOS都提供了多种API支持.借助于这些API的支持,iOS应用既可以查看.播放手机相册中的照片.视频,也 ...

  7. iOS 多个播放器同时播放,双击全屏,单击退出全屏

    前言:公司需求如下:点击一个按钮播放一个视频,最多同时播放4个:双击某视频让其全屏,单击再恢复原来的样子.IOS的播放器有两种,MPMoviePlayerController,AVAudioPlaye ...

  8. AVAudioPlayer播放并实现了后台播放和远程控制

    // ViewController.h #import <UIKit/UIKit.h> #import <AVFoundation/AVFoundation.h> @class ...

  9. MySQL- 锁机制及MyISAM表锁

    锁是计算机协调多个进程或线程并发访问某一资源的机制.在数据库中,除传统的计算资源(如CPU.RAM.I/O等)的争用以外,数据也是一种供许 多用户 共享的资源.如何保证数据并发访问的一致性.有效性是所 ...

随机推荐

  1. 百万行mysql数据库优化(补充)

    我上大学的那个时候喜欢研究一些数据库的技术,那时候觉得数据处理很重要,而且数据优化也是相当重要的,看了很多数据库方面的资料,虽然在实际的项目也遇到过一些数据库优化的任务,完成之后还是有些心情愉快.但是 ...

  2. Composite C1是一个.Net平台上开源专业的CMS开源项目

    CompositeC1 4 发布 Composite C1是一个.Net平台上开源专业的CMS开源项目,很多的功能用户界面,面向任务的支持与各种工具协作.当编辑内容时在用户端体验很友好.编辑器与开发者 ...

  3. 浅谈XSS

    最近在做项目中的漏洞修复工作,在短时间内接触到很多关于web开发需要防范的漏洞,例如SQL injection , XSS, CSRF等等,这些漏洞对web开发的项目来说的破坏还是比较大的,其实在网上 ...

  4. Using CrunchBase API

    Let us have fun with CrunchBase API. What can CrunchBase API give us? They said: https://developer.c ...

  5. django model Foreign key usage 关系型数据库 ORM

    django 的模型 from django.db import models""" A model pair to map car and its manufactur ...

  6. 搭建Ubuntu12.04交叉编译服务器

    最近在公司学着搭建一台Linux服务器作为交叉编译的主机之用,服务器端选择了Ubuntu12.04 LTS桌面版,客户端采用Windows XP平台,使用SSH工具软件putty登录到Linux主机, ...

  7. ADO.NET—两种连接模式

    一.ADO.NET简介 ADO.NET的名称起源于ADO(ActiveX Data Objects),这是一个广泛的类组,用于在以往的Microsoft技术中访问数据.用来访问数据库,.NET环境下首 ...

  8. C语言总结2

    12).预处理指令 1. 什么叫做预处理代码. 以#开头的代码就是预处理代码  #warning #import 2. 手写1个C程序的步骤.(面试题) 1>编写代码 2>编译 1)执行. ...

  9. zoom:1的作用

    兼容IE6.IE7.IE8浏览器,经常会遇到一些问题,可以使用zoom:1来解决,有如下作用:触发IE浏览器的haslayout解决ie下的浮动,margin重叠等一些问题. 如下使用DIV做一行两列 ...

  10. 蓝桥杯 C语言 基础训练 数列排序

    问题描述 给定一个长度为n的数列,将这个数列按从小到大的顺序排列.1<=n<=200 输入格式 第一行为一个整数n. 第二行包含n个整数,为待排序的数,每个整数的绝对值小于10000. 输 ...