iOS上實現DLNA功能Github上搜一下大可能是基於C++的Platinum,因而就想能不能靠OC實現一套方便iOS開發者.因而就有了MRDLNA這個庫.git
DLNA投屏的相關的介紹,協議,具體XML內容就不細說了. 這裏介紹一下 MRDLNA這個庫的投屏使用.github
設置好代理
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類型的對象
複製代碼
- (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];
}
複製代碼