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

第一步:在appDelegate中通知app支持后台播放:在方法

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {}

中添加如下代码:

 AVAudioSession *audioSession = [AVAudioSession sharedInstance];
    //默认情况下扬声器播放
    [audioSession setCategory:AVAudioSessionCategoryPlayback error:nil];
    [audioSession setActive:YES error:nil];

第二步:在info.plist文件中添加一个key项

第三步:在播放控制界面接受远程控制

- (void)viewWillAppear:(BOOL)animated
{
    [super viewWillAppear:YES];
    // 开始接受远程控制
    [[UIApplication sharedApplication] beginReceivingRemoteControlEvents];
    [self resignFirstResponder];
}

- (void)viewWillDisappear:(BOOL)animated
{
// 接触远程控制
    [[UIApplication sharedApplication] endReceivingRemoteControlEvents];
    [self becomeFirstResponder];
}
// 重写父类成为响应者方法
- (BOOL)canBecomeFirstResponder
{
    return YES;
}

第四步:对远程控制事件作出相应的操作

//重写父类方法,接受外部事件的处理
- (void) remoteControlReceivedWithEvent: (UIEvent *) receivedEvent {
    NSLog(@"remote");
    if (receivedEvent.type == UIEventTypeRemoteControl) {

        switch (receivedEvent.subtype) { // 得到事件类型

            case UIEventSubtypeRemoteControlTogglePlayPause: // 暂停 ios6
                [self.player pause]; // 调用你所在项目的暂停按钮的响应方法 下面的也是如此
                break;

            case UIEventSubtypeRemoteControlPreviousTrack:  // 上一首

                [self lastMusic:nil];
                break;

            case UIEventSubtypeRemoteControlNextTrack: // 下一首
                [self nextMusic:nil];
                break;

            case UIEventSubtypeRemoteControlPlay: //播放
                [self playMusic:nil];
                break;

            case UIEventSubtypeRemoteControlPause: // 暂停 ios7
                [self playMusic:nil];
                break;

            default:
                break;
        }
    }
}

第五步:设置锁屏主题

注意这个播放仅需要在播放状态改变的时候调用,例如初始化播放器,上一首下一首等操作

//Now Playing Center可以在锁屏界面展示音乐的信息,也达到增强用户体验的作用。
////传递信息到锁屏状态下 此方法在播放歌曲与切换歌曲时调用即可

- (void)configNowPlayingCenter {
    NSLog(@"锁屏设置");
   // BASE_INFO_FUN(@"配置NowPlayingCenter");
    NSMutableDictionary * info = [NSMutableDictionary dictionary];
    //音乐的标题
    [info setObject:self.nameLabel.text forKey:MPMediaItemPropertyTitle];
    //音乐的艺术家
   NSString *author= [[self.playlistArr[self.currentNum] valueForKey:@"songinfo"] valueForKey:@"author"];
    [info setObject:author forKey:MPMediaItemPropertyArtist];
    //音乐的播放时间
    [info setObject:@(self.player.currentTime.value) forKey:MPNowPlayingInfoPropertyElapsedPlaybackTime];
    //音乐的播放速度
    [info setObject:@(1) forKey:MPNowPlayingInfoPropertyPlaybackRate];
    //音乐的总时间
    [info setObject:@(self.totalTime) forKey:MPMediaItemPropertyPlaybackDuration];
    //音乐的封面
    MPMediaItemArtwork * artwork = [[MPMediaItemArtwork alloc] initWithImage:[UIImage imageNamed:@"0.jpg"]];
    [info setObject:artwork forKey:MPMediaItemPropertyArtwork];
    //完成设置
    [[MPNowPlayingInfoCenter defaultCenter]setNowPlayingInfo:info];
}
时间: 2024-10-24 20:25:56

AVPlayer 音乐播放后台播放,以及锁屏主题设置的相关文章

iOS_33_音乐播放(后台播放+锁屏歌词)

最终效果图: 应用程序代理(后台播放三步曲) // // BeyondAppDelegate.h // 33_音效 // // Created by beyond on 14-9-10. // Copyright (c) 2014年 com.beyond. All rights reserved. // #import <UIKit/UIKit.h> @interface BeyondAppDelegate : UIResponder <UIApplicationDelegate>

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

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

iOS音频流播放、后台播放、远程控制、锁屏封面等总结

1. 推荐音频流播放Framework 知名度比较高的Framework应该是github的 mattgallagher/AudioStreamer ,因为国内有一些论坛和教程网的例子是用这个Framework写的,而且有国人略微改进了一下这个Framework并加了中文注释.不过这个Framework的缺点在于不支持ARC,并且状态的改变通过notification来通知,并不是很灵活易用. 所以在这里推荐的是另一个Framework,同样来自github(虽然以前是放在google code

ubuntu 18.04取消自动锁屏以及设置键盘快捷锁屏

1:操作设置取消自动锁屏: setting-->power--->never 2:  设置自动锁屏快捷键: 快捷键设置一般在setting-->devices--->keyboard中设置,其中,有些已经有的可以直接修改,没有的可以添加,例如,锁屏的相关快捷键设置,我这里已经修改: 同时,我新增了ctrl+alt+a为截屏并保存在粘贴板上的快捷设置: 原文地址:https://www.cnblogs.com/yun6853992/p/9344737.html

Windows 聚焦的锁屏壁纸设置为桌面壁纸

需求: Windows的锁屏壁纸偶尔遇到非常喜欢的壁纸,想设置为桌面壁纸. 步骤如下: 1. “Windows 聚焦”的锁屏壁纸都保存在隐藏文件夹 --- Assets里. a. 打开“资源管理器 b. 在地址栏复制粘贴下方路径后按回车键,即可快速跳转至这个隐藏的文件夹. %localappdata%\Packages\Microsoft.Windows.ContentDeliveryManager_cw5n1h2txyewy\LocalState\Assets PS: 右键单击“Assets”

MAC OS下锁屏快捷键设置

首先在应用程序中找到Automator打开,选择文稿类型为服务,点击选取.步骤如下图: 在搜索中输入run,双击Run Shell Script,如下图: 将服务收到选定的从文本选为没有输入,并在Shell脚本框中输入: '/System/Library/CoreServices/Menu Extras/User.menu/Contents/Resources/CGSession' -suspend 展示如下图: 在顶部菜单栏中文件-->存储,命名为Lock Screen,点击存储,如下图: 然

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

实现音乐的后台播放.以及播放时,能够控制其暂停,下一首等操作,以及锁屏图片歌曲名等的显示 此实例须要真机调试.效果图例如以下: project下载:githubproject下载 实现步骤: 1.首先改动info.plist 2.其次引入两个须要的框架 #import <AVFoundation/AVFoundation.h> #import <MediaPlayer/MediaPlayer.h> 3.设置播放器及后台播放 - (void)viewDidLoad { [super

音乐锁屏播放

1.首先要音乐支持后台播放 (1)在info.plist中添加 Required background modes item 0 : App plays audio or streams audio/video using AirPlay (2)设置AVAudioSession: AVAudioSession *session = [AVAudioSession sharedInstance]; [session setActive:YES error:nil]; [session setCat

QQ音乐/酷狗音乐锁屏控制实现原理

我实现的效果 混乱的锁屏控制 Android自4.0版本, 也就是API level 14开始, 加入了锁屏控制的功能, 相关的类是RemoteControlClient, 这个类在API level 21中被标记为deprecated, 被新的类MediaSession所替代. 我们的音乐App中最开始使用的是原生锁屏控制API, 说实话这个API不好用, 遇到了一些小坑, 最要命的是不同品牌的手机, 锁屏界面长的还不一样, 就连我自己都没见过原生4.0的锁屏控制界面是什么样的. 国内的手机厂