`
ydbc
  • 浏览: 766943 次
  • 性别: Icon_minigender_1
  • 来自: 大连
文章分类
社区版块
存档分类
最新评论

ios开发之MPNowPlayingInfoCenter 锁屏显示正在播放的音乐

 
阅读更多

今天在床上玩唱吧,听着歌锁屏了,当点亮屏幕的时候,锁屏页面出现了我正在听得歌曲 壁纸也换成了唱吧里面的歌手图片.做ios好几年了,从没有做过这个需求 于是好奇就翻看ios的API文档找到了这个类.


如下图

MPNowPlayingInfoCenter 解释

即时播放中心能够用于播放APP中正在播放的媒体信息.
播放的信息会显示在锁屏页面和多任务管理页面.如果用户是用airplay播放的话 会自动投射到相应的设备上.

下载源码

开始动手

让App支持后台运行

先创建工程,因为是audio 类型的app 需要支持后台播放 所以得要在plist 中声明属性.
添加如下属性

Required background modes -> App plays audio
如下图

添加播放的Frame

  1. AVFoundation.framework
  2. MediaPlayer.framework

开始代码吧

首先创建一个ViewController 和一个用于播放的按钮 playButton

@interface ViewController : UIViewController {

IBOutlet UIButton *playButton;

}

@property (nonatomic, retain) IBOutlet UIButton *playButton;

-(IBAction)playButtonPress:(id)sender;

加入播放用的控件audioPlayer 和其相应的头文件

#import <MediaPlayer/MPNowPlayingInfoCenter.h>
#import <MediaPlayer/MPMediaItem.h>
#import <AVFoundation/AVFoundation.h>
MPMoviePlayerController *audioPlayer;

@property (nonatomic, retain) MPMoviePlayerController *audioPlayer;

@synthesize playButton, audioPlayer;

在viewDidLoad 中 我们要把AudioPlayer 进行初始化 此处加载网络上的一首音频

[[AVAudioSession sharedInstance] setDelegate: self];

NSError *myErr;

// Initialize the AVAudioSession here.
if (![[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback error:&myErr]) {
    // Handle the error here.
    NSLog(@"Audio Session error %@, %@", myErr, [myErr userInfo]);
}
else{
    // Since there were no errors initializing the session, we'll allow begin receiving remote control events
    [[UIApplication sharedApplication] beginReceivingRemoteControlEvents];
}

    //initialize our audio player
    audioPlayer = [[MPMoviePlayerController alloc] initWithContentURL:[NSURL URLWithString:@"http://www.cocoanetics.com/files/Cocoanetics_031.mp3"]];

    [audioPlayer setShouldAutoplay:NO];
    [audioPlayer setControlStyle: MPMovieControlStyleEmbedded];
    audioPlayer.view.hidden = YES;

    [audioPlayer prepareToPlay];

点击按钮开始播放,注意因为MPNowPlayingInfoCenter只支持5.0+ 所以为了防止低版本使用 巧妙的应用了NSClassFromString进行了判断

- (IBAction)playButtonPress:(id)sender {

    [audioPlayer play];

    Class playingInfoCenter = NSClassFromString(@"MPNowPlayingInfoCenter");

    if (playingInfoCenter) {


        NSMutableDictionary *songInfo = [ [NSMutableDictionary alloc] init];


        MPMediaItemArtwork *albumArt = [ [MPMediaItemArtwork alloc] initWithImage: [UIImage imagedNamed:@"AlbumArt"] ];

        [ songInfo setObject: @"Audio Title" forKey:MPMediaItemPropertyTitle ];
        [ songInfo setObject: @"Audio Author" forKey:MPMediaItemPropertyArtist ];
        [ songInfo setObject: @"Audio Album" forKey:MPMediaItemPropertyAlbumTitle ];
        [ songInfo setObject: albumArt forKey:MPMediaItemPropertyArtwork ];
        [ [MPNowPlayingInfoCenter defaultCenter] setNowPlayingInfo:songInfo ];
    }
}

参考http://jaysonlane.net/tech-blog/2012/04/lock-screen-now-playing-with-mpnowplayinginfocenter/

分享到:
评论

相关推荐

    iOS播放器特效,锁屏状态下显示专辑图片和信息

    在iOS应用开发中,为用户提供优质的音乐播放体验是至关重要的,而实现锁屏状态下显示专辑图片和信息这一特效,能够显著提升应用的用户体验。本文将详细介绍如何在iOS播放器应用中实现在锁屏界面显示相应的音乐信息,...

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

    iOS音乐后台播放及锁屏信息显示 iOS音乐后台播放及锁屏信息显示是一项非常重要的功能,特别是在音乐类应用程序中。通过本文,我们可以学习如何在iOS平台上实现音乐的后台播放,以及锁屏信息的显示。 在iOS平台上,...

    ios-仿QQ音乐网易云音乐.zip

    在iOS开发领域,仿QQ音乐和网易云音乐的锁屏界面和动态歌词跟踪功能是许多开发者热衷于尝试和学习的课题。这个压缩包“ios-仿QQ音乐网易云音乐.zip”显然提供了一个实践示例,帮助开发者了解如何在Swift中实现这些...

    swift-轻仿QQ音乐播放界面包含音频播放歌词匹配及锁屏歌词的设置

    在Swift编程语言中,开发一款轻仿QQ音乐播放界面的应用是一项技术挑战,涉及到音频播放、歌词同步以及锁屏显示等功能。下面将详细讲解这些知识点。 首先,**音频播放**是应用的核心部分。在Swift中,我们可以使用...

    ios音乐播放器代码 完整版

    要在锁屏界面显示当前播放的音乐信息(如歌曲名、艺术家名),你需要使用`MPNowPlayingInfoCenter`来设置当前播放状态。这将使得音乐信息能够在控制中心和锁屏界面的媒体控制区域显示。 5. **通知与代理**: 在...

    iOS中关于音乐锁屏控制音乐(锁屏信息设置)的实例代码

    在iOS开发中,用户经常希望在锁屏状态下也能控制音乐播放,例如切换歌曲、暂停或播放。这个过程涉及到对锁屏界面的自定义以及远程控制事件的处理。下面将详细讲解如何在iOS中实现音乐锁屏控制音乐(锁屏信息设置)。...

    iOS高仿QQ音乐播放器

    9. **音效控制**:iOS提供了`MPNowPlayingInfoCenter`来显示锁屏和控制中心的音乐信息,同时可以使用`MPRemoteCommandCenter`来监听和处理远程控制事件,如耳机按键操作。 10. **错误处理**:良好的错误处理机制是...

    iOS监听手机锁屏状态

    在iOS开发中,有时我们需要获取用户的手机锁屏状态,以便在特定条件下执行相应的操作,比如暂停音乐播放或更新应用的状态。本文将详细讲解如何在iOS中监听手机的锁屏状态。 首先,我们要知道iOS提供了两种方式来...

    ios-音乐播放器.zip

    综上所述,“ios-音乐播放器.zip”项目包含了iOS平台音频播放器开发的诸多核心知识点,从用户界面设计、音频播放控制、播放模式到锁屏功能的实现,每一个环节都需要深入理解和熟练掌握相关API和技术。通过这个项目,...

    实例解析iOS中音乐播放器应用开发的基本要点共30页.pd

    7. **音乐播放控制**:iOS提供远程控制接口,允许用户通过耳机线控或锁屏界面控制音乐播放。通过MPNowPlayingInfoCenter和MPRemoteCommandCenter可以实现这些功能。 8. **版权和权限**:在播放音乐时,开发者必须...

    iOS锁屏音频播放控制及音频信息设置

    在iOS开发中,为了提供良好的用户体验,特别是在音乐播放应用中,开发者需要实现后台音频播放以及锁屏界面的控制功能。本文将详细介绍如何在iOS中设置锁屏音频播放控制及显示音频信息。 首先,为了使应用能够接收...

    实现后台音乐播放可控制播放暂停循环播放

    在锁屏状态下控制音乐,可以使用`MPNowPlayingInfoCenter`来更新当前播放信息,这样用户在锁屏界面就可以看到音乐的相关信息,并通过控制中心进行操作: ```swift let nowPlayingInfo: [String: Any] = [ ...

    iOS音乐播放器实现代码完整版

    在iOS应用开发中,创建一个音乐播放器是一项常见的任务,涉及到音频处理、播放控制以及与系统服务的交互。本示例代码提供了一个完整的iOS音乐播放器实现,涵盖了音频列表管理、播放器核心功能、后台播放支持以及锁屏...

    iOS实现播放远程网络音乐的核心技术点总结

    在iOS开发中,播放远程网络音乐涉及的关键技术主要集中在AVFoundation框架,特别是AVPlayer类的使用。AVFoundation是苹果提供的多媒体处理框架,它为音频和视频的处理提供了丰富的功能。以下将详细介绍如何使用...

    MusicPlayer-iPodLibray:这是一款iPod本地音乐播放器,集成了锁屏界面控制中心控制

    在iOS开发中,构建一个音乐播放器是常见的需求之一。本项目"MusicPlayer-iPodLibrary"就是这样一个实例,它利用Objective-C语言实现了对iPod音乐库的访问,并且集成了锁屏界面以及控制中心的控制功能。下面我们将...

    纯Swift高仿QQ音乐播放器

    4. **锁屏显示**:在iOS中,锁屏状态下仍然可以显示音乐播放信息,这需要利用到系统的Now Playing API。通过实现`MPNowPlayingInfoCenter`的更新,我们可以向锁屏界面推送当前播放的歌曲信息,如歌曲名、艺术家、...

    音乐播放器功能

    【音乐播放器功能】在iOS开发中,是一个常见的应用场景,主要目标是为用户提供方便的音频播放体验。这个源码示例特别关注于实现一个类似iPhone自带音乐播放器的应用功能,这意味着它应该具备基本的播放、暂停、上一...

    MusicApp

    同时,利用MPNowPlayingInfoCenter和MPClockProtocol,我们可以更新锁屏显示的当前播放信息,如歌曲名、艺术家和进度条。 此外,考虑到社交分享和个性化推荐,MusicApp可能需要集成网络请求和数据分析。Swift的...

Global site tag (gtag.js) - Google Analytics