AVAudioPlayer的锁屏播放控制和锁屏播放信息显示

news/2024/12/2 21:31:19/

在设置这个锁屏之前,首先得设置应用支持后台音乐播放,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 == 1) {[self.AudioPlayer play];}else{[self.AudioPlayer pause];}btn.tag *= -1;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:100] 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__);//stopbreak;default:break;}
}

 

转载于:https://www.cnblogs.com/iOSDeng/p/5445249.html


http://www.ppmy.cn/news/852685.html

相关文章

MTK隐藏导航栏,去掉下拉,永不锁屏,永不灭屏

MTK隐藏导航栏 修改全局属性, 有兴趣的可以全局搜索这个属性,在systemui以及framework中好像都有写 qemu.hw.mainkeys1MTK去掉下拉通知 这里去掉添加的view,只是没有界面了 --- a/alps/vendor/mediatek/proprietary/packages/apps/System…

Android 10 系统屏蔽底部按键 禁止锁屏 禁用横屏

一、屏蔽底部按键 1,先说状态栏 状态栏其实就是SystemUI.apk,源码目录是android/frameworks/base/packages/SystemUI/,但是状态栏的隐藏并不是修改SystemUI中的内容,而是修改android/frameworks/base/core/res/res/values/dimen…

android 11.0 12.0去掉屏幕锁屏(屏幕默认锁屏方式改成无)

1.概述 在11.0 12.0定制化开发中,需求要求去掉屏幕锁屏功能,默认无锁屏功能,所以要去掉系统默认锁屏功能 分两步: 1.1在SettingProvider数据库加载时默认无锁屏 1.2去掉Settings中关于选择锁屏的方式 2.去掉屏幕锁屏(屏幕默认锁屏方式改成无)核心代码 frameworks/base/pa…

锁屏界面的小锁图标UI异常,竖屏不居中,显示在右边。锁屏小锁图标在底部会与提示文字重叠。

这边思路就是&#xff0c;写死底部居中&#xff0c;然后把它里面算法的方法直接注释掉&#xff0c;完全依赖xml来布局。 verride/vendor/mediatek/proprietary/packages/apps/SystemUI/res/layout/status_bar_expanded.xml 这里面有个 <com.android.keyguard.LockIconVie…

Android自定义锁屏实现----仿正点闹钟滑屏解锁

本文原创&#xff0c;转载请注明出处&#xff1a;http://blog.csdn.net/qinjuning 前几周看了下解锁的框架&#xff0c;基本上算是弄了个脸熟。看着别人花哨的解锁界面&#xff0c;心里也很痒痒的。于是&#xff0c;画了一天时间&#xff0c; 捣鼓出了这个成果----仿正点闹钟解…

android 9.0 10.0 去掉锁屏功能和息屏功能(永不息屏)

1.概述 在10.0的系统产品定制化开发中,需要对去掉锁屏功能和 息屏功能 让屏幕永远不要熄灭, 在android api中默认息屏时间为1分钟 2.去掉锁屏功能和息屏功能(永不息屏)的核心类 packages/SettingsProvider/res/values/defaults.xml frameworks/base/packages/SettingsProv…

android 软件锁屏代码,纹字锁屏(com.iooly.android.lockscreen) - 8.1.1 - 应用 - 酷安

权限信息 更改网络连接性 连接WLAN网络和断开连接 停用屏幕锁定 开机启动 修改或删除您的USB存储设备中的内容 读取您的USB存储设备中的内容 android.permission.WRITE_INTERNAL_STORAGE 查看网络连接 完全的网络访问权限 读取手机状态和身份 检索正在运行的应用 防…

Android播放视频时屏幕保持唤醒不息屏

PARTIAL_WAKE_LOCK :保持CPU 运转&#xff0c;屏幕和键盘灯有可能是关闭的。 SCREEN_DIM_WAKE_LOCK &#xff1a;保持CPU 运转&#xff0c;允许保持屏幕显示但有可能是灰的&#xff0c;允许关闭键盘灯 SCREEN_BRIGHT_WAKE_LOCK &#xff1a;保持CPU 运转&#xff0c;允许保持屏…