iOS DLNA投屏功能了解一下

image.png
  • iOS上實(shí)現(xiàn)DLNA功能Github上搜一下大多是基于C++的Platinum,于是就想能不能靠OC實(shí)現(xiàn)一套方便iOS開發(fā)者.于是就有了MRDLNA這個(gè)庫.
  • DLNA投屏的相關(guān)的介紹,協(xié)議,具體XML內(nèi)容就不細(xì)說了. 這里介紹一下 MRDLNA這個(gè)庫的投屏使用.

支持Pod安裝MRDLNA

image.png

一.搜索設(shè)備

image.png
設(shè)置好代理
self.dlnaManager = [MRDLNA sharedMRDLNAManager];
self.dlnaManager.delegate = self;
調(diào)用開始搜索后就會(huì)搜索整個(gè)局域網(wǎng)中支持投視頻的設(shè)備
- (void)viewWillAppear:(BOOL)animated{
    [super viewWillAppear:animated];
    [self.dlnaManager startSearch];
}

二.發(fā)現(xiàn)設(shè)備后的回調(diào)

發(fā)現(xiàn)設(shè)備后在代理中可以拿到
- (void)searchDLNAResult:(NSArray *)devicesArray{
    NSLog(@"發(fā)現(xiàn)設(shè)備");
    self.deviceArr = devicesArray;
    [self.dlnaTable reloadData];
}

//devicesArray中拿到的是CLUPnPDevice類型的對(duì)象
  • Demo中將搜索頁面和投屏控制頁面分開來的,所以在搜索頁面搜索到設(shè)備后就把目標(biāo)設(shè)備和播放Url設(shè)置給了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;
}

/**
 進(jìn)度條seek單位是秒
 */
- (IBAction)seekChanged:(UISlider *)sender{
    NSInteger sec = sender.value * 60 * 60;
    NSLog(@"播放進(jìn)度條======>: %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];
}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 杯中的啤酒挨著杯壁,散發(fā)著冷氣,一點(diǎn)點(diǎn)消失,然后又被一點(diǎn)點(diǎn)加滿。消失的一小部分幸運(yùn)地逃到了空氣里,更多的被咽入一個(gè)...
    王大安閱讀 203評(píng)論 0 0
  • 天佑,天佑,詹天佑, 天柱,天柱,擎天柱, 得勝,得勝,李得勝, 世人,人世,黃世仁, 天霸,霸天,南霸天,
    爾少閱讀 306評(píng)論 0 0
  • 文/荼Ice 我很少為愛情片寫影評(píng),因?yàn)橹翱催^的很多愛情片都不盡人意,豆瓣上的很多評(píng)論說國(guó)產(chǎn)愛情片就是一場(chǎng)災(zāi)難。...
    荼塵Ice閱讀 487評(píng)論 1 3

友情鏈接更多精彩內(nèi)容