IOS-视频
一、简介
NSAssert(self.url, @"URL不能为空");
[[MPMoviePlayerController alloc] initWithContentURL:self.url];
[self.view addSubview:self.moviePlayer.view];
通过设置AutoresizingMask属性可以在横竖屏转换时自动调整视图大小
[self.moviePlayer play];
[self.moviePlayer setFullscreen:YES animated:YES];
MPMoviePlayerPlaybackStateDidChangeNotification
MPMoviePlayerPlaybackDidFinishNotification
MPMoviePlayerDidExitFullscreenNotification
MPMoviePlayerThumbnailImageRequestDidFinishNotification
-requestThumbnailImagesAtTimes:timeOption:
五、VLC(基于FFmpeg)
1.集成
#import "VLCMediaPlayer.h"
self.vlcPlayer = [[VLCMediaPlayer alloc] init];
self.vlcPlayer.drawable = self.view;
self.vlcPlayer.media = [VLCMedia mediaWithURL:[NSURL URLWithString:@"http://streams.videolan.org/streams/mp4/Mr_MrsSmith-h264_aac.mp4"]];
[self.vlcPlayer play];
- (BOOL)play;
- (void)pause;
- (void)stop;
- (BOOL)isPlaying;
@property float rate; // 播放速率
- (void)setTime:(VLCTime *)value; // 当前的播放时间
- (VLCTime *)time;
@property (readonly) VLCTime *remainingTime; // 剩余的播放时间
- (void)setPosition:(float)newPosition; // 播放进度(0.0 ~ 1.0)
- (float)position;
- (void)setMedia:(VLCMedia *)value;
- (VLCMedia *)media;
@property (retain) id drawable;
2.VLCMediaPlayer – 播放器的状态
enum {
VLCMediaPlayerStateStopped, // 播放器已经停止
VLCMediaPlayerStateOpening, // 流正在打开
VLCMediaPlayerStateBuffering, // 流正在缓冲
VLCMediaPlayerStateEnded, // 流已经结束
VLCMediaPlayerStateError, // 播放器产生了错误
VLCMediaPlayerStatePlaying, // 流正在播放
VLCMediaPlayerStatePaused // 流被暂停了
};
3.VLCMediaPlayerDelegate
- (void)mediaPlayerStateChanged:(NSNotification *)aNotification;
- (void)mediaPlayerTimeChanged:(NSNotification *)aNotification;
//
// ViewController.m
// IOS_0322_视频
//
// Created by ma c on 16/3/22.
// Copyright © 2016年 博文科技. All rights reserved.
// #import "ViewController.h"
#import <MediaPlayer/MediaPlayer.h>
#import <MobileVLCKit/MobileVLCKit.h> @interface ViewController () @property (nonatomic, strong) VLCMediaPlayer *player; @end @implementation ViewController - (void)viewDidLoad {
[super viewDidLoad];
self.view.backgroundColor = [UIColor cyanColor]; } - (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event
{
// [self systemMoviePlayer];
[self mobileVLCMoviePlayer]; } - (void)mobileVLCMoviePlayer
{
NSURL *url = [[NSBundle mainBundle] URLForResource:@"11-传感器.mp4" withExtension:nil];
self.player = [[VLCMediaPlayer alloc] init];
self.player.media = [VLCMedia mediaWithURL:url]; //设置播放界面的载体
self.player.drawable = self.view;
//播放
[self.player play]; } - (void)systemMoviePlayer
{
MPMoviePlayerController *mpc = [[MPMoviePlayerController alloc] init];
mpc.contentURL = [[NSBundle mainBundle] URLForResource:@"11-传感器.mp4" withExtension:nil]; //缓冲之后自动播放
// [mpc prepareToPlay]; //隐藏自带的控制面板
// mpc.controlStyle = MPMovieControlStyleNone; //添加播放器的界面到控制器View上面
mpc.view.frame = CGRectMake(, , , );
[self.view addSubview:mpc.view]; //播放
[mpc play]; } @end
IOS-视频的更多相关文章
- 最近这么火的iOS视频直播
快速集成iOS基于RTMP的视频推流 http://www.jianshu.com/p/8ea016b2720e iOS视频直播初窥:高仿<喵播APP> http://www.jiansh ...
- 浅谈iOS视频开发
浅谈iOS视频开发 这段时间对视频开发进行了一些了解,在这里和大家分享一下我自己觉得学习步骤和资料,希望对那些对视频感兴趣的朋友有些帮助. 一.iOS系统自带播放器 要了解iOS视频开发,首先我们从 ...
- IOS 视频分解图片、图片合成视频
在IOS视频处理中,视频分解图片和图片合成视频是IOS视频处理中经常遇到的问题,这篇博客就这两个部分对IOS视频图像的相互转换做一下分析. (1)视频分解图片 这里视频分解图片使用的是AVAssetI ...
- 最简单的基于FFmpeg的移动端例子:IOS 视频解码器-保存
===================================================== 最简单的基于FFmpeg的移动端例子系列文章列表: 最简单的基于FFmpeg的移动端例子:A ...
- 最简单的基于FFmpeg的移动端例子:IOS 视频转码器
===================================================== 最简单的基于FFmpeg的移动端例子系列文章列表: 最简单的基于FFmpeg的移动端例子:A ...
- <精华篇>:iOS视频大全-持续更新
注意:新浪微博分享的资料和简书分享的资料,略有不同! 小码哥swift3.0版 斗鱼项目视频:点击下载 iOS开发25个项目实战:点击下载 2016PHP全套下载:点击下载 黑马刀哥iOS视频精选 ...
- iOS视频编辑SDK
IOS视频编辑SDK接入说明 一.名词解释 分辨率:用于计算机视频处理的图像,以水平和垂直方向上所能显示的像素数来表示分辨率.常见视频分辨率的有1080P即1920x1080,720P即1080x72 ...
- iOS 视频开发学习
原文:浅谈iOS视频开发 这段时间对视频开发进行了一些了解,在这里和大家分享一下我自己觉得学习步骤和资料,希望对那些对视频感兴趣的朋友有些帮助. 一.iOS系统自带播放器 要了解iOS视频开发,首先我 ...
- iOS视频边下载边播放
随着视频行业的发展,很多用户对于观看体验也有了更高的要求,以前的习惯是下载好了在观看,而现在是希望1分钟都不要等,ZUI好一边看着一边下载,等把这个视频看完也下载完了,也就是我们常说的“视频边下载边播 ...
- iOS视频开发经验
iOS视频开发经验 手机比PC的优势除了便携外,我认为最重要的就是可以快速方便的创作多媒体作品.照片分享,语音输入,视频录制,地理位置.一个成功的手机APP从产品形态上都有这其中的一项或多项,比如in ...
随机推荐
- git 设置 .gitignore 为全局global + 配置.gitignore为全局后不生效解决办法
outline 什么是 .gitignore 以及 .gitignore 的作用,这里不做赘述,自行网上查阅. 设置 .gitignore 为全局生效 懒得自己逐行敲忽略规则的话,建议移步:https ...
- If 条件控制 & while循环语句
Python条件语句是通过一条或多条语句的执行结果(True或者False)来决定执行的代码块. 可以通过下图来简单了解条件语句的执行过程: if 语句 Python中if语句的一般形式如下所示: i ...
- django博客项目2.建立 Django 博客应用
建立博客应用 我们已经建立了 Django 博客的项目工程,并且成功地运行了它.不过到目前为止这一切都还只是 Django 为我们创建的项目初始内容,Django 不可能为我们初始化生成博客代码,这些 ...
- 流畅的python 14章可迭代的对象、迭代器 和生成器
可迭代的对象.迭代器和生成器 迭代是数据处理的基石.扫描内存中放不下的数据集时,我们要找到一种惰性获取数据项的方式,即按需一次获取一个数据项.这就是迭代器模式(Iterator pattern). 迭 ...
- Android学习七---Hello OpenCV samples
创建一个能够使用OpenCV JavaCameraView的应用程序来了解基于OpenCV java API 的应用程序的开发流程.有了Android的基础,在程序中需要修改的几个地方1.activi ...
- golang 实现并发计算文件数量
package main import ( "fmt" "io/ioutil" "os" ) func listDir(path strin ...
- MTK平台环境搭建---Ubuntu Linux 下执行sudo apt-get install提示“现在没有可用的软件包……
问题描述: sudo apt-get install openssh-server 正在读取软件包列表... 完成正在分析软件包的依赖关系树 Reading state information... ...
- 超过两行显示省略号 -webkit-line-clamp、-webkit-box-orient vue打包后不起作用
为了实现两行显示缩略显示,但是本地是可以显示,打包后不起作用 word-break: break-all; text-overflow: ellipsis; display: -webkit-box; ...
- 1 TensorFlow入门笔记之基础架构
------------------------------------ 写在开头:此文参照莫烦python教程(墙裂推荐!!!) ---------------------------------- ...
- BCB直接访问硬件端口和物理内存 - WinIO的应用
BCB直接访问硬件端口和物理内存 - WinIO的应用 (读硬盘参数和主板BIOS信息, 支持 Win9x/NT/2k/XP/2003) 关于直接访问端口, 有很多网站很多文章都讨论过, 但总找不到非 ...