使用苹果原生视频播放器MPMoviePlayerController播放来自优酷等网页的视频

没有自己的流媒体服务器,又想在app中用原生视频播放器MPMoviePlayerController将视频插入到界面,在界面可以直接播放,或者全屏播放,可以通过以下方法实现

先创建原生播放器

   _moviePlayer = [[MPMoviePlayerController alloc] init];
   _moviePlayer.controlStyle = MPMovieControlStyleEmbedded;
   _moviePlayer.shouldAutoplay = NO;
   _moviePlayer.view.frame = CGRectMake(0, 0, HX_SCREEN_WIDTH, 200);
        
   [self.scrollView addSubview:_moviePlayer.view];

然后请求优酷等视频网页加载数据

   NSURL *fileURL = [NSURL URLWithString:<span style="background-color: rgb(240, 240, 240);">@"你要提取流媒体地址的优酷等网页"</span>];
   NSURLRequest *request = [NSURLRequest requestWithURL:fileURL];
        
   UIWebView *webView = [[UIWebView alloc]init];
   webView.delegate = self;
   [webView loadRequest:request];

然后通过实现UIWebView的委托方法:

#pragma mark - UIWebViewDelegate
- (void)webViewDidFinishLoad:(UIWebView *)webView
{
    NSString *lJs = @"document.documentElement.innerHTML";
    NSString *lHtml = [webView stringByEvaluatingJavaScriptFromString:lJs];
    NSLog(@"html内容:%@",lHtml);
//上面只是打印信息供参考,下面才是提取流媒体
    
    // NSString *lJs2 = @"(document.getElementsByTagName(\"video\")[0]).getElementsByTagName(\"source\")[0].src";  //qiyi
    NSString *lJs2 = @"(document.getElementsByTagName(\"video\")[0]).src";  // youku,tudou,ku6 ,souhu
    NSString *lm3u8 = [webView stringByEvaluatingJavaScriptFromString:lJs2];
    NSLog(@"video source:%@",lm3u8);
    
//    加载到原生播放器播放
    NSURL *movieUrl = [NSURL URLWithString:lm3u8];
    _moviePlayer.contentURL = movieUrl;
    [_moviePlayer prepareToPlay];
}

说明:webView要add到你的视图中去,否则它是永远不会去加载请求的;



  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值