MPNowPlayingInfoCenter 锁屏显示播放信息

如下图

 

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

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

Required background modes -> App plays audio
如下图

  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 ];
    }
}



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在Android系统中,我们通常可以使用多种方法来实现音乐播放锁屏显示功能。 首先,我们可以创建一个自定义锁屏界面来显示当前播放音乐信息。这可以通过创建一个自定义的锁屏活动(Lock Screen Activity)来实现。在这个活动中,我们可以设置一个布局文件,用来显示音乐的封面、歌曲名称、艺术家等信息。通过获取当前播放器的状态信息,我们可以更新锁屏界面上的内容,使其与当前播放音乐保持同步。 其次,我们还可以使用Notification来实现音乐播放锁屏显示。通过在音乐播放服务中创建一个Notification,并设置合适的样式和布局,我们可以将音乐信息显示锁屏通知栏中。用户可以通过下拉通知栏来查看当前播放歌曲的信息,并且可以通过点击通知跳转到音乐播放界面。 另外,我们还可以利用第三方库来实现音乐播放锁屏显示。有一些强大的音乐播放框架,如ExoPlayer和MediaPlayer,它们提供了一些便捷的方法来实现锁屏显示功能。这些框架可以很方便地获取音乐的元数据,并使用系统提供的锁屏API来将信息显示锁屏界面上。 总的来说,实现Android音乐播放锁屏显示功能可以通过创建自定义锁屏界面、使用Notification或者利用第三方库来实现。这些方法都可以帮助我们在锁屏状态下显示当前播放音乐信息,提升用户体验。 ### 回答2: 在Android系统中,音乐播放锁屏显示是指当我们在使用音乐播放器时,将屏幕锁定后,仍然可以在锁屏界面上进行音乐播放操作和显示相关的信息。 Android系统提供了相应的接口和功能,使得音乐播放器可以在锁屏界面上显示歌曲的信息,例如歌曲名称、歌手、专辑封面等。这样用户在锁屏状态下也能够方便地浏览和控制正在播放音乐。 要实现音乐播放锁屏显示,首先需要在应用程序中注册MediaSession对象。MediaSession是Android系统提供的一个用于媒体播放控制的类,它包含了与媒体播放状态相关的方法和属性。 在注册MediaSession之后,需要通过设置相应的参数,使得音乐播放器能够在锁屏界面上显示歌曲信息。可以通过设置MediaMetadata属性来指定音乐的标题、歌手、专辑封面等信息。此外,还可以通过设置MediaSessionCompat.TransportControls的方法来实现在锁屏界面上进行音乐播放操作,例如播放、暂停、上一首、下一首等。 当音乐播放器处于播放状态时,锁屏界面上将显示当前正在播放的歌曲信息。用户可以通过滑动或点击相应的控制按钮来控制音乐播放和暂停。在锁屏界面上,用户还可以通过上一首和下一首按钮来切换播放列表中的歌曲。 总而言之,Android系统提供了相应的接口和功能,使得音乐播放器可以在锁屏界面上显示歌曲信息并进行控制。这样,即使在锁屏状态下,用户也能够方便地浏览和操作正在播放音乐。 ### 回答3: Android音乐播放锁屏显示是指在锁屏界面上显示当前正在播放音乐信息,例如歌曲名称、歌手、专辑封面等。这样用户可以在不解锁屏幕的情况下,直接查看当前播放音乐信息。 要实现Android音乐播放锁屏显示,可以通过以下步骤: 1. 获取音乐播放器的控制权:在Android上,我们可以使用MediaSession来控制音乐播放和展示相关信息。通过创建一个MediaSession实例,并且调用setActive(true)来激活该会话。 2. 更新音乐信息:在播放音乐的过程中,我们可以使用MediaMetadata.Builder来构建音乐信息,如歌曲名称、歌手、专辑封面等。然后,通过调用setMetadata更新音乐信息。 3. 显示锁屏界面:当音乐播放器激活且音乐信息已经更新后,我们可以使用MediaStyle样式设置锁屏界面。通过创建一个Notification.Builder实例,并将音乐信息和相应的操作添加到通知栏中。 4. 更新通知栏:为了确保音乐信息的实时性,我们需要在音乐信息更新时更新通知栏。可以通过注册MediaSession.Callback监听音乐信息的变化,并在onMetadataChanged()回调中更新通知栏。 通过上述步骤,我们可以实现Android音乐播放锁屏显示功能,让用户能够方便地获取正在播放音乐信息,提高用户体验。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值