博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
纯OC实现iOS DLNA投屏功能了解一下
阅读量:7234 次
发布时间:2019-06-29

本文共 2355 字,大约阅读时间需要 7 分钟。

  • iOS上实现DLNA功能Github上搜一下大多是基于C++的Platinum,于是就想能不能靠OC实现一套方便iOS开发者.于是就有了这个库.

  • DLNA投屏的相关的介绍,协议,具体XML内容就不细说了. 这里介绍一下 这个库的投屏使用.

支持Pod安装MRDLNA

一.搜索设备

设置好代理self.dlnaManager = [MRDLNA sharedMRDLNAManager];self.dlnaManager.delegate = self;复制代码
调用开始搜索后就会搜索整个局域网中支持投视频的设备- (void)viewWillAppear:(BOOL)animated{    [super viewWillAppear:animated];    [self.dlnaManager startSearch];}复制代码

二.发现设备后的回调

发现设备后在代理中可以拿到- (void)searchDLNAResult:(NSArray *)devicesArray{    NSLog(@"发现设备");    self.deviceArr = devicesArray;    [self.dlnaTable reloadData];}//devicesArray中拿到的是CLUPnPDevice类型的对象复制代码
  • Demo中将搜索页面和投屏控制页面分开来的,所以在搜索页面搜索到设备后就把目标设备和播放Url设置给了dlnaManager
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{    NSString *testUrl = @"http://223.110.239.40:6060/cntvmobile/vod/p_cntvmobile00000000000020150518/m_cntvmobile00000000000659727681";    [tableView deselectRowAtIndexPath:indexPath animated:YES];    if (indexPath.row < self.deviceArr.count) {        CLUPnPDevice *model = self.deviceArr[indexPath.row];        self.dlnaManager.device = model;        self.dlnaManager.playUrl = testUrl;        DLNAControlVC *controlVC = [[DLNAControlVC alloc] init];        controlVC.model = model;        [self.navigationController pushViewController:controlVC animated:YES];    }}复制代码

三.投屏

- (void)viewDidLoad {    [super viewDidLoad];    self.dlnaManager = [MRDLNA sharedMRDLNAManager];    [self.dlnaManager startDLNA];}复制代码

四.投屏后的播放控制

/** 退出 */- (IBAction)closeAction:(id)sender {    [self.dlnaManager endDLNA];}/** 播放/暂停 */- (IBAction)playOrPause:(id)sender {    if (_isPlaying) {        [self.dlnaManager dlnaPause];    }else{        [self.dlnaManager dlnaPlay];    }    _isPlaying = !_isPlaying;}/** 进度条seek单位是秒 */- (IBAction)seekChanged:(UISlider *)sender{    NSInteger sec = sender.value * 60 * 60;    NSLog(@"播放进度条======>: %zd",sec);    [self.dlnaManager seekChanged:sec];}/** 音量volume建议传0-100之间字符串 */- (IBAction)volumeChange:(UISlider *)sender {    NSString *vol = [NSString stringWithFormat:@"%.f",sender.value * 100];    NSLog(@"音量========>: %@",vol);    [self.dlnaManager volumeChanged:vol];}/** 切集 */- (IBAction)playNext:(id)sender {    NSString *testVideo = @"http://wvideo.spriteapp.cn/video/2016/0328/56f8ec01d9bfe_wpd.mp4";    [self.dlnaManager playTheURL:testVideo];}复制代码

转载于:https://juejin.im/post/5aeff0af518825672033fb12

你可能感兴趣的文章
linux下输入密码不回显
查看>>
mysql数据同步
查看>>
html 标签
查看>>
我的友情链接
查看>>
Windows 8下excel 2010的多窗口开启
查看>>
EF Code First关系规则及配置
查看>>
C++中delete和delete[]的区别
查看>>
koan重新安装系统
查看>>
sed和gawk基础
查看>>
Linux入门之web服务(三)---httpd配置应用详解
查看>>
手机共享笔记本wifi免费上网
查看>>
VMware-server-2.0.0-101586注册码备下来
查看>>
Linux命令学习1
查看>>
SCOM2012功能测试(29)—查看-Diagnostics
查看>>
mysql 1449 : The user specified as a definer (\'root\'@\'%\') does not exist 解决方法
查看>>
C# 有符号整数 无符号整数
查看>>
Shell脚本中的 测试开关 和 特殊参数
查看>>
C语言小程序-基于链表的学生信息管理
查看>>
搜索二叉树
查看>>
【java】java学习之路-01-Linux基础(一)
查看>>