iOS_视频后台播放+远程控制

原创 2016年08月29日 08:28:51

1、Plist加入

对于长时间运行的任务,需要在Info.plist添加一行,键为UIBackgroundModes,值为一个数组,可以包含如下几个字符串:

  • audio
  • location
  • voip
  • newsstand-content
  • external-accessory
  • bluetooth-central











第2步,导入音频播放框架

引用库:


AudioToolBox.framework

MediaPlayer.framework

CoreMedia.framework

AVFoundation.framework






第3步,

在appdelegate导入

#import <AVFoundation/AVFoundation.h>





第4步,

didfinishlaunch执行自定义方法

[self initBackGroundPlay];



/** @programmer beyond@xsism.com
 *  @brief  后台播放第1步
 *  @param  <#无#>
 *  @return <#无#>
 */
- (void)initBackGroundPlay
{
    AVAudioSession *session = [AVAudioSession sharedInstance];
    NSError *setCategoryError = nil;
    [session setCategory:AVAudioSessionCategoryPlayback error:&setCategoryError];
    NSError *activationError = nil;
    [session setActive:YES error:&activationError];
    
    
    //告诉系统,我们要接受远程控制事件,并在播放控制器直接进行响应
    [[UIApplication sharedApplication] beginReceivingRemoteControlEvents];
    
    
}



第5步,在播放控制器中,直接响应即可


在viewDidLoad中,执行自定义方法

[self configNowPlayingInfoCenter];



#pragma mark - 锁屏播放
-(void)configNowPlayingInfoCenter{
    
    if (NSClassFromString(@"MPNowPlayingInfoCenter")) {
        
        NSMutableDictionary *dict = [[NSMutableDictionary alloc] init];
        [dict setObject:@"name" forKey:MPMediaItemPropertyTitle];
        NSString *singer = [NSString stringWithFormat:@"【%@】",kAppName];
        [dict setObject:singer forKey:MPMediaItemPropertyArtist];
//        [dict setObject:@"beyond" forKey:MPMediaItemPropertyAlbumTitle];
        
        UIImage *image = [UIImage imageNamed:@"ok01.jpg"];
        MPMediaItemArtwork *artwork = [[MPMediaItemArtwork alloc] initWithImage:image];
        [dict setObject:artwork forKey:MPMediaItemPropertyArtwork];
        
        [[MPNowPlayingInfoCenter defaultCenter] setNowPlayingInfo:dict];
        
    }
    
}

#pragma mark - 直接响应远程控制
// 响应远程音乐播放控制消息
- (void)remoteControlReceivedWithEvent:(UIEvent *)receivedEvent
{
    
    if (receivedEvent.type == UIEventTypeRemoteControl) {
        
        switch (receivedEvent.subtype) {
            case UIEventSubtypeRemoteControlPlay:
            {
                NSLog(@"RemoteControlEvents: play");
                [self pauseAndPlayBtnClicked:_operationView.xib_btn_pauseAndPlay];
            }
                break;
            case UIEventSubtypeRemoteControlPause:
            {
                NSLog(@"RemoteControlEvents: pause");
                [self pauseAndPlayBtnClicked:_operationView.xib_btn_pauseAndPlay];
            }
                break;
            case UIEventSubtypeRemoteControlTogglePlayPause:
                //                [[PlayController sharedInstance] pause];
                NSLog(@"无效,RemoteControlEvents: pause");
                break;
            case UIEventSubtypeRemoteControlNextTrack:
                //                [[PlayController sharedInstance] playModeNext];
            {
                NSLog(@"RemoteControlEvents: playModeNext");
                [self rewindBtnClicked:_operationView.xib_btn_forward];
            }
                break;
            case UIEventSubtypeRemoteControlPreviousTrack:
                //                [[PlayController sharedInstance] playPrev];
            {
                NSLog(@"RemoteControlEvents: playPrev");
                [self rewindBtnClicked:_operationView.xib_btn_rewind];
            }
                break;
            default:
                break;
        }
    }
}



版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

ios 音乐后台播放 远程控制

在默认环境下App被切换到后台时,音乐的就停止播放了,但音乐类App的一般都会需要在后台继续播放,这样用户就可以一边听音乐,一边操作其他的App。对于这种情况我们可以对App做一些简单的配置,实现后台...

[IOS]音频的后台播放和远程控制

[IOS]音频的后台播放和远程控制 DEMO地址:http://download.csdn.net/detail/u012881779/8942623 后台播放需要先在info表中添加键Requ...

iOS音乐播放器的后台播放和远程控制

iOS的后台任务一直有很严格的限制,一般情况下只有几类情况能使用后台任务,下面介绍其中的一种 音乐的后台播放。 1.要支持后台任务,首先你得告诉系统你需要后台任务,所以你首先在Info.plist文...

iOS 音乐类App必备功能:后台播放、锁屏封面、远程播放控制

转载自http://blog.csdn.net/u012716788/article/details/46583561    感觉对于做音乐类的APP非常有用,自己收藏,以备不时之需 前言 ...

音频后台播放远程控制

  • 2015年07月29日 11:57
  • 790KB
  • 下载

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

要想设置AVAudioPlayer后台播放, 需要设置三个地方: 分别是AVAudioSession, Appdelegate的EnterBackground 和 plist文件...

iOS 远程推送 根据后台推送内容的不同跳转指定页面

iOS 远程推送,根据后台推送内容的不同, 跳转指定页面 我目前的需求是总体分为两类: 1:私信、关注、点赞一类,只需跳转到对应的tabbar 中的某一项 2:每日精品文章项目推送,...

iOS7 Background Remote Notification(后台远程通知——静默push)

iOS 7在推送方面最大的变化就是允许:应用收到通知后在后台(background)状态下运行一段代码,可用于从服务器获取内容更新。功能使用场景:(多媒体)聊天,Email更新,基于通知的订阅内容同步...
  • hherima
  • hherima
  • 2016年01月06日 16:27
  • 7823

iOS音乐播放器实现后台播放锁屏界面控制

现在主流的音乐播放器基本都实现了锁屏后还能控制暂停、播放、切换的功能,之前一直没有在意,这两天闲来无事就研究了一下: 其实主要原理就是利用了iOS5.0以后出来的新API, MPNowPlay...

iOS - 音频后台播放设置及锁屏界面的显示与控制

1、先在项目 的Capabilities中进行设置,开启后台模式 2、激活音频会话 其它地方也可以,只要保证能执行到以下代码块的内容即可,这里我选择在AppDelegate.m里设置 先导入必要的头...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:iOS_视频后台播放+远程控制
举报原因:
原因补充:

(最多只允许输入30个字)