视频播放器

在iOS開發上,如果遇到需要播放影片,如開機動畫…,我們很習慣地會使用MediaPlayer來播放影片,因為很方便使用,所以就一直使用下去。但是 隨著客戶的要求越來越嚴苛,尤其是過場動畫或互動效果上的表現。所以如果在一些動畫中還挾帶影片一起運算,那勢必機器會跑不動。所以在iOS 4之後,我們可以使用AVPlayer這個類別來進行更細微的操作。

備註:

  • MediaPlayer的影片是放在UIView 裡面,而AVPlayer是放在AVPlayerLayer裡面,AVPlayerLayer是CALayer 的子類別。
  • 使用MediaPlayer前,要記得加入MediaPlayer.framework及#import <MediaPlayer/MediaPlayer.h>
  • 使用AVPlayer前,要記得加入AVFoundation.frameworkk及#import <AVFoundation/AVFoundation.h>

請參考以下的範例:

使用MediaPlayer來播放影片

[cpp] view plaincopy

  1. NSString *filePath = [[NSBundle mainBundle] pathForResource:@"backspace" ofType:@"mov"];
  2. NSURL *sourceMovieURL = [NSURL fileURLWithPath:filePath];
  3. moviePlayer = [[MPMoviePlayerController alloc] initWithContentURL:sourceMovieURL];
  4. moviePlayer.view.frame=CGRectMake(0, 0, 1024, 768);
  5. moviePlayer.controlStyle=MPMovieControlStyleNone;
  6. // Play the movie!
  7. [self.view addSubview:moviePlayer.view];

使用AVPlayer來播放影片

[cpp] view plaincopy

    1. NSString *filePath = [[NSBundle mainBundle] pathForResource:@"backspace" ofType:@"mov"];
    2. NSURL *sourceMovieURL = [NSURL fileURLWithPath:filePath];
    3. AVAsset *movieAsset = [AVURLAsset URLAssetWithURL:sourceMovieURL options:nil];
    4. AVPlayerItem *playerItem = [AVPlayerItem playerItemWithAsset:movieAsset];
    5. AVPlayer *player = [AVPlayer playerWithPlayerItem:playerItem];
    6. AVPlayerLayer *playerLayer = [AVPlayerLayer playerLayerWithPlayer:player];
    7. playerLayer.frame = self.view.layer.bounds;
    8. playerLayer.videoGravity = AVLayerVideoGravityResizeAspect;
    9. [self.view.layer addSublayer:playerLayer];
    10. [player play];
    11. MPMoviePlayerController是通过MediaPlayer.frame引入的,可用于播放在iOS支持的所有格式的视频,用起来很简单,但是有注意的事项,实现结果如下:

      /

      代码如下:

      -(IBAction)click:(id)sender{

      //通过点击按钮出发视频播放视图的加载

      [self playMyVedio];

      }

      -(void)playMyVedio{

      //路径的设置,这里要注意,不要用[NSURL urlwithstring],还要去确保路径的正确

      NSBundle *bundle = [NSBundle mainBundle];

      NSString *moviePath = [bundle pathForResource:@"111/Viva" ofType:@"mp4"];

      NSURL *movieURL = [NSURL fileURLWithPath:moviePath];

      //很重要的一点是在头文件里已经把player变为属性了,@property(nonamaic,strong),如果不写为属性就会黑屏,目前不知道为什么

      player =[[MPMoviePlayerController alloc] initWithContentURL:movieURL];

      player.controlStyle=MPMovieControlStyleDefault;

      [player prepareToPlay];

      [player.view setFrame:self.view.bounds];  // player的尺寸

      [self.view addSubview: player.view];

      player.shouldAutoplay=YES;

      }

      如果注意了视频的路径,和设置了属性,那么点击按钮就应该可以顺利的以全屏幕是播放视频,下一个问题就是退出,因为是全屏模式,模仿 iphone自己的视频播放,应该是点击左上角的done按钮就退出播放,这里如果不作处理,点击后只是退出全屏,屏幕还是有一块黑,其实是player 的非全屏模式,所以这里就要监听一个通知,点击done按钮后发出的通知,这样就可以退出了,代码如下:

      - (void)viewDidLoad

      {

      [super viewDidLoad];

      [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(exitFullScreen:) name: MPMoviePlayerDidExitFullscreenNotification object:nil];

      }

      -(void)exitFullScreen:(NSNotification *)notification{

      [player.view removeFromSuperview];

      NSLog(@”remove player”);

      }

      更新一种方法,程序启动自动播放全屏视频,没有控制条,播放完毕接视图呈现,也就是一个过场动画,这里要注意把设置控制条和全屏等语句写在添加播放器视图之后,要不然设置无效

      -(void)playMyVedio{

      NSString *myFilePath = [[NSBundle mainBundle] pathForResource:@”mnMovnew.mp4″ ofType:nil inDirectory:nil];

      NSURL *movieURL = [NSURL fileURLWithPath:myFilePath];

      player =[[MPMoviePlayerController alloc] initWithContentURL:movieURL];

      [player prepareToPlay];

      [self.view addSubview:player.view];//设置写在添加之后

      player.shouldAutoplay=YES;

      [player setControlStyle:MPMovieControlStyleNone];

      [player setFullscreen:YES];

      [player.view setFrame:self.view.bounds];

      }

时间: 2024-08-08 21:59:25

视频播放器的相关文章

rhel6安装smplayer,mplayer视频播放器

1.首先去下载一个optinal的包,里面有smplayer与mplayer所需的各种依赖包.我的网盘下载地址为: 2.给你下载的包配置yum源 vim /etc/yum.repos.d/yum.repo 我的配置文件如下: [option] name=option baseurl=file://iso/optional                   这是我的optional目录,根据自己的实际路径配置即可 gpgcheck=0 3.卸载掉与smplayer相冲突的包 首先可以使用rpm

免费视频播放器videojs中文教程

Video.js是一款web视频播放器,支持html5和flash两种播放方式.更多关于video.js的介绍,可以访问官方网站介绍,我之前也写过一篇关于video.js的使用心得,有兴趣的可以点这里 , 阅读的人数还蛮多的,有些热心的读者甚至还给过我小额打赏,钱虽不多,但是很感动.最几天又收到几位网友的私信,问一些关于videojs使用方面的问题.我自己都不记得videojs长什么模样了,出于别人对我的信任,又回头看了一遍上一篇文章,还是2014年的时候写的,如今videojs的版本已经更新到

100行代码实现最简单的基于FFMPEG+SDL的视频播放器(SDL1.x)【转】

转自:http://blog.csdn.net/leixiaohua1020/article/details/8652605 版权声明:本文为博主原创文章,未经博主允许不得转载. 目录(?)[-] 简介 流程图 simplest_ffmpeg_player标准版代码 simplest_ffmpeg_player_suSU版代码 结果 FFMPEG相关学习资料 补充问题 ===================================================== 最简单的基于FFmp

Android本地文件点击视频播放器vitamio版

本博客用Android studio集成了vitamio的自定义视频播放器,同时可以在文件管理中选择播放,想要一个自己的视频播放器这边便可以满足 实现具体功能如下: 1.sd卡内存视频文件的点击播放; 2.视频时间进度条; 3.屏幕亮度的手势滑动; 4.视频音量的手势滑动; 5.多点手势效果 6.自定义存储视频url播放 想要的重要的代码,我懂得: ------------------------------软件工程结构图: 最重要的是依赖上vitamio库: -----------------

最简单的基于FFMPEG+SDL的视频播放器 ver2 (採用SDL2.0)

===================================================== 最简单的基于FFmpeg的视频播放器系列文章列表: 100行代码实现最简单的基于FFMPEG+SDL的视频播放器(SDL1.x) 最简单的基于FFMPEG+SDL的视频播放器 ver2 (採用SDL2.0) 最简单的基于FFmpeg的解码器-纯净版(不包括libavformat) 最简单的基于FFMPEG+SDL的视频播放器:拆分-解码器和播放器 最简单的基于FFMPEG的Hellowor

android多媒体(视频播放器)

##视频处理 一丶VideoView控件 点击创建一个播放器并播放视频 /**     * 播放视频     * @param view     */    public void play(View view){                vv.setVideoPath(path);        vv.start();        vv.seekTo(currentPositon);//从停的位置开始播放    }    /**     * 暂停播放     * @param view

Clappr——开源的Web视频播放器

巴西著名的门户网站Globo.com(视 频播放器),使用的是基于OSMF的Flash组件.在最近几年的发展过程中,Globo为视频平台陆续添加了不少额外功能,例如: 字幕,广告,画中画播放等.然而,由于缺乏针对视频平台进行维护的专门小组,网站工程师之一的FlávioRibeiro越来越感觉这个平台落后和难以应 付不断增长的在线访问需求了.特别是今年,世界杯第二次来到足球王国,Globo将面临的是激增的赛事回放点击.有鉴于此,Ribeiro与同事们决定对 播放器进行升级改造.在进行一番验证测试后

ios 视频播放器MPMoviePlayerController

这个东西和之前的音频播放差不多, 也是先需要导入系统框架MediaPlayer.framework 才能使用到MPMoviePlayerController 的文件中导入相应的头文件 初始化:这里就有些不一样了MPMoviePlayerController是可以通过远程url初始化的, 例如: MPMoviePlayerController *moviePlayer = [ [ MPMoviePlayerController alloc]initWithContentURL:[NSURL url

视频播放器的制作

今天为大家简单介绍下视频播放器的制作,由于没有系统,所以很无奈的只好手打键盘来实现代码快的实现了,希望可以帮到那些需要用到视频播放器的友友有用吧,下面就为大家介绍下视频播放器的制作以及实现吧,嘿嘿. 利用自带MPMoviePlayerController来实现视频播放,首先要在项目中导入MediaPlayer.Framework框架包. 在视图控制器中 #import "MediaPlayer/MPMoviePlayerController.h" .m文件中,加入一下代码 - (voi

最简单的基于libVLC的例子:最简单的基于libVLC的视频播放器

本文记录使用libVLC的开发的最简单的视频播放器示例.VLC Media Player是一款优秀的播放器,但是由于它的源代码编译的难度比较大,一直没有深入研究过它的开发方面的技术.此前触到了一些VLC开发方面的东西,因此总结了一下libVLC的开发示例程序. 如何获取VLC的SDK VLC开发所需的库文件可以有2种获取方法: 1. 自行编译2. 直接从安装目录里面拷贝出来 第一种方法难度要大一些.尤其是在Windows下编译VLC是个比较麻烦的事情.一般情况下可以选择第二种方法获取VLC开发所