投屏功能具体体现在Demo中的DLNAView上,可以参考

投屏功能呢通过VHDLNAControl来进行集成

//初始化投屏对象
self.control=[[VHDLNAControl alloc] init];
_control.delegate = self;
///需要调用播放器方法 获知我们当前活动是否支持投屏 (必须调用)
///播放器投屏功能需要保证播放器为活跃状态
[moviePlayer dlnaMappingObject:self.control];
//获取设备列表
-(void)deviceList:(NSArray*)deviceList
{
    self.deviceArray = [NSMutableArray arrayWithArray:deviceList];
    if (deviceList.count >0 ) {
        [_deviceTableView reloadData];
    }
    else{
        [_deviceNameBtn setTitle:@"未选择设备" forState:UIControlStateNormal];
    }
//    if (self.deviceArray.count > 0) {
//        self.control.curDevice = self.deviceArray[0];
//    }
}

投屏所需设备参数

/**
 *  获取投屏设备列表  通过注册VHDLNAContro的ldelegate来获取
 */
-(void)deviceList:(NSArray<VHDLNADevice *>*)deviceList;
@property (nonatomic,weak) VHDLNADevice *curDevice;//设置当前选择的设备后才能正常投屏

获取设备状态

/**
 *  获取播放器状态
 */
-(void)deviceStateChange:(VHDLNADeviceState)deviceState;
/**
 *  播放器状态 直播状态 回放状态由于用户创建的 MPMoviePlayerController 实例获取
 */
typedef NS_ENUM(NSInteger,VHDLNADeviceState) {
    VHDLNADeviceStateNone       = 0,    //默认状态
    VHDLNADeviceStateStoped     = 1,    //结束
    VHDLNADeviceStateSetUrled   = 2,    //设置Url完成
    VHDLNADeviceStatePlaying    = 3,    //播放中
    VHDLNADeviceStatePause      = 4,    //暂停
};

投屏播放的操作

/**
 *  播放初始化开始播放
 */
-(void)startSuccess:(void (^)(void))successBlock failure:(void (^)(NSError * error))failureBlock;
/**
 *  开始播放
 */
-(void)playSuccess:(void (^)(void))successBlock failure:(void (^)(NSError * error))failureBlock;
/**
 *  暂停播放
 */
-(void)pauseSuccess:(void (^)(void))successBlock failure:(void (^)(NSError * error))failureBlock;
/**
 *  停止播放
 */
-(void)stopSuccess:(void (^)(void))successBlock failure:(void (^)(NSError * error))failureBlock;
/**
 *  拖拽到指定进度播放
 */
-(void)seek:(NSInteger)seekpos success:(void(^)(void))successBlock failure:(void(^)(NSError *error))failureBlock;

DLNA投屏lib库