ios 视频播放代码Demo

方法一:
- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view.
    //利用自带MPMoviePlayerController来实现视频播放,首先要在 项目中导入MediaPlayer.Framework框架包.
    //在试图控制器中导入#import "MediaPlayer/MPMoviePlayerController.h"
    UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 320, 568)];
    imageView.image = [UIImage imageNamed:@"00013"];
    [self.view addSubview:imageView];
    [imageView release];

    // 播放视频按钮
    UIButton *playButton = [UIButton buttonWithType:UIButtonTypeSystem];
    playButton.frame = CGRectMake(200, 30, 100, 30);
    [playButton addTarget:self action:@selector(playClick:) forControlEvents:UIControlEventTouchUpInside];
    [playButton setTitle:@"播放视频" forState:UIControlStateNormal];

    playButton.backgroundColor = [UIColor greenColor];
    playButton.layer.cornerRadius = 5;
    playButton.layer.masksToBounds = YES;
    [self.view addSubview:playButton];
}

- (void)playClick:(UIButton *)btn
{
    //视频文件路径,此视频已经存入项目包中.属于本地播放
    NSString *path = [[NSBundle mainBundle] pathForResource:@"test" ofType:@"mp4"];
    //视频URL
    NSURL *url = [NSURL fileURLWithPath:path];
    //视频播放对象
    MPMoviePlayerController *movie = [[MPMoviePlayerController alloc] initWithContentURL:url];
    movie.controlStyle = MPMovieControlStyleFullscreen;
    [movie.view setFrame:self.view.bounds];
    movie.initialPlaybackTime = -1;
    [self.view addSubview:movie.view];
    //注冊一个播放结束的通知, 当播放结束时, 监听到而且做一些处理
    //播放器自带有播放通知的功能, 在此只只须要注冊观察者监听通知的就可以
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(myMovieFinishedCallback:) name:MPMoviePlayerPlaybackDidFinishNotification
      object:movie];
    [movie play];
}

- (void)myMovieFinishedCallback:(NSNotification *)notify
{
    //视频播放对象
    MPMoviePlayerController *theMovie = [notify object];
    //销毁播放通知
    [[NSNotificationCenter defaultCenter] removeObserver:self name:MPMoviePlayerPlaybackDidFinishNotification object:(theMovie)];
    //释放视频对象
    [theMovie.view release];
}

方法二:
- (void)viewDidLoad
{
    //首先要在 项目中导入MediaPlayer.Framework框架包.
    //在试图控制器中导入#import <MediaPlayer/MediaPlayer.h>
    [super viewDidLoad];
    // Do any additional setup after loading the view.
    NSURL *videoURL;
    NSString *path = [[NSBundle mainBundle] pathForResource:@"test" ofType:@"mp4"];
    //推断是网络地址还是本地播放地址
    if ([path hasPrefix:@"http://"]) {
        videoURL = [NSURL URLWithString:path];
    }else{
        videoURL = [NSURL fileURLWithPath:path];
    }
    MPMoviePlayerViewController *_moviePlayerController= [[MPMoviePlayerViewController alloc] initWithContentURL:videoURL];
    [_moviePlayerController.view setFrame:CGRectMake(0,100,320,200)];
    _moviePlayerController.moviePlayer.movieSourceType=MPMovieSourceTypeFile;
    [_moviePlayerController.moviePlayer setScalingMode:MPMovieScalingModeNone];
    [_moviePlayerController.moviePlayer setRepeatMode:MPMovieRepeatModeNone];
    [_moviePlayerController.moviePlayer setControlStyle:MPMovieControlModeVolumeOnly];
    [_moviePlayerController.moviePlayer setFullscreen:NO animated:YES];
    [_moviePlayerController.moviePlayer play];
    //视频播放组件的容器,加这个容器是为了兼容iOS6,假设不加容器在iOS7以下没有不论什么问题,假设在iOS6以下视频的播放画面会自己主动铺满self.view;
    UIView *moviePlayView = [[UIView alloc]initWithFrame:CGRectMake(0, 0, 320, 568)];
    [self.view addSubview:moviePlayView];
    [moviePlayView addSubview:[_moviePlayerController.moviePlayer view]];
}
时间: 2024-10-17 08:07:39

ios 视频播放代码Demo的相关文章

iOS: ios视频播放(MPMediaPlayerController,AVPlayer,AVPlayerViewcontroller、ffmpeg-AVPlayer)

介绍: 和音频播放一样,ios也提供个很多的API.如mediaPlayer.framework下的MPMediaPlayerController.AVFounditon.framework下的AVPlayer和AVKit下的AVPlayerViewcontroller.MPMovieplayerController已经在ios9.0中被废弃了,用来替代的是AVPlayerViewcontroller.尽管如此,但还是说一下比较熟悉的MPMovieplayerController. 1.MPMo

学习 iOS多线程开发 Demo示意

并发所描述的概念就是同时运行多个任务.这些任务可能是以在单核 CPU 上分时(时间分享)的形式同时运行,也可能是在多核 CPU 上以真正的并行方式来运行.这篇文章是作者在学习iOS开发技术当中,遇到多线程问题时捋顺思路时的一些看法. GCD是iOS开发当中解决多核开发的一个技术. 主要有三种队列:一.运行在主线程的 Main queque   通过dispatch_get_main_queque 来获取 二.并行队列 global dispatch queque ,通过dispatch_get_

IOS视频播放器VKVideoPlayer

VKVideoPlayer 是一个在 Viki iOS 应用里使用的视频播放器. 主要特性: 完全可定制的 UI 任何大小乃至全屏 支持字幕显示 可定制的字幕显示风格 支持 HTTP 直播流 支持屏幕方向调整 Bulletproof event machine to easily integrate features like video ads Lots of delegate callbacks for your own logging requirements VKVideoPlayer是

asp.net各种类型视频播放代码(全)

1.avi格式 代码片断如下: <object id="video" width="400" height="200" border="0"  classid="clsid:CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA"> <param name="ShowDisplay" value="0"> <param

iOS 开发代码规范有哪些

对于刚刚入门ios的同学来说,iOS 开发代码规范是很重要的知识的,这里就给大家简单总结了一下. 一.工程规范 1.功能分类 根据所做功能的不同,分为不同的功能模块,比如登录模块,首页模块,个人模块等,根据不同的功能,代码必须要放在不同功能的文件夹下. 2.代码文件分类 不管是MVC模式,MVVM模式,或是其他设计模式,在不同的功能模块下,视图控制器(Controllers),视图(Views),模型类(Models),也必须要分别存放. 3.第三方库分类 工程中会经常使用第三方库,在引入第三方

iOS应用代码段瘦身办法

iOS应用代码段瘦身办法 大型app应对苹果官方代码段大小限制的小伎俩- 背景 苹果官方文档 对二进制 __TEXT 段大小有限制: 代码实在瘦不下去怎么办? 解决方案 利用 rename_section 过审核,在Xcode中向 "Other Linker Flags" 中添加 -Wl,-rename_section,__TEXT,__cstring,__RODATA,__cstring -Wl,-rename_section,__TEXT,__const,__RODATA,__co

ios统计代码行数

要统计ios开发代码,包括头文件的,终端命令进入项目目录下,命令如下 列出每个文件的行数: find . -name "*.m" -or -name "*.h" -or -name "*.xib" -or -name "*.c" |xargs wc -l 列出代码行数总和: find . -name "*.m" -or -name "*.h" -or -name "*.xib&

iOS软件代码规范

在梳理团队开发流程,收集相关流程资料时,在百度文档上发现的一篇iOS软件代码规范文档:写的非常完善,具有很强操作性.百度上下载时花了一个下载币,现和大家共享.下载地址:http://download.csdn.net/detail/smallhorse87/8660881 在此基础上,我添加了客户端上线前收尾工作的备忘事项: APP中是否装备了必备功能:统计,日志收集及发送,版本检测以及自动更新,用户反馈: 确保产品经理和设计师体验过了APP,签字画押.确保APP体现了产品和设计的构想,没有理解

quartz spring配置实例代码demo下载

原文:quartz spring配置实例代码demo下载 源代码下载地址:http://www.zuidaima.com/share/1550463459560448.htm