• iOS开发 本地视频的播放和远程视频的播放 MPMoviewPlayer


    使用MPMoviePlayerController 播放控制器来进行本地视频和网络视频的播放(由于没有做适配 项目适用于iPhone 4s)

    1,把事先下载的本地视屏拖入项目中 , 也可以获取视频的路径进行播放,这里直接把视频拖入项目中

    2,导入<MediaPlayer/MediaPlayer.h>静态库

     

    3,声明播放控制器为全局变量

    4,要求点击按钮 进行视频播放 (创建按钮)

    5,点击按钮触发按钮点击事件 

     1 -(void)btnClick:(UIButton *)Sender
     2 {
     3 //首先创建 视频播放器控件
     4 player = [[MPMoviePlayerControll alloc]init];
     5 //获取视频的地址
     6 NSString * path = [[NSBundle mainBundle] pathForResource:@"项目演示视频" ofType@"mp4"];
     7 NSUrl * movieUrl = [NSUrl fileURLWithPath:path];
    如果想要播放网址视频,如下:
    NSString * str = @"http://www.yinyuetai.com/mv/video-url/2104967
    "
    NSURL * movieUrl = [NSURL URLWithString:str];
    在这里只要把player.contentURL 改变为这个就行了
     8 //设置视频播放控制器的 contentUrl
     9 player.contentURL = movieUrl;
    10 //设置配件样式
    11 player.controlStyle = MPMovieControlStyleEmbedded; //内嵌模式
    12 player.controlStyle =MPMovieControlStyleFullscreen;//全屏模式
    13 //设置 视频控制器 的 view 的frame
    14 player.view.frame = CGRectMake(0, 0, 320, 200);
    15 //让视频控制器进行播放
    16 [player play];
    17 Sender.hidden = YES;//按钮隐藏
    18 //给视频控制器添加通知 
    19 [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(moviewFinish:) name:MPMoviePlayerPlaybackDidFinishNotification object:player];//用来监听视频是否播放完毕
    20 }

    6,实现视频播放完毕通知事件

    1 -(void)moviewFinish:(NSNotification *)notification
    2 {
    3 //按钮显示
    4 btn.hidden = NO;
    5 //播放完毕,把通知对象player移出
    6 [[NSNotificationCenter defaultCenter] removeObserver:self name:MPMoviePlayerPlaybackDidFinishNotification object:player];
    7 //同时 把播放控制器 的 view移出
    8 [player.view removeFromSuperview];
    9 }

    注意 : (1)项目中进行视频播放 点击快进 快退按钮 项目会闪退,现在我没办法扑捉屏幕对象 ,知道的可以告诉我呦!! ^_^!\

             (2)项目中如果播放url地址视频的时候 需要修改info.plist文件,如下所示:(图是别人的 嘿嘿)

        

    项目运行展示:

    (1).点击进行播放

    (2).内嵌模式播放

    (3).进行全屏播放

    !结束,祝大家生活愉快!!!

  • 相关阅读:
    gulp serve 报错 gulp.ps1
    执行git命令时出现fatal: 'origin' does not appear to be a git repository错误
    利用 SASS 简化 `nth-child` 样式的生成
    git的一些常用命令
    回调函数
    匿名函数
    css消除行内元素的间隙
    @click.native的使用
    Element-ui 下拉列表 选项过多时如何解决卡顿问题
    vue组件通信(父子之间,兄弟之间)
  • 原文地址:https://www.cnblogs.com/JustForHappy/p/4885894.html
Copyright © 2020-2023  润新知