iOS开发-ZFPlayer的简单使用 播放单个网络视频
iOS开发-ZFPlayer的简单使用 播放单个网络视频
- 前言
- 开发准备
- 代码
- 注意
前言
- 关于ZFPlayer播放单个网络视频案例,它的网络列表视频案例在gitHub上面很多。
开发准备
- podfile导入
pod 'ZFPlayer', '~> 3.3.3' #, '~> 3.2.17' # 视频播放
pod 'ZFPlayer/ControlView'
pod 'ZFPlayer/AVPlayer'
代码
- ViewController.m
#import "ViewController.h"
// ZFPlayer
#import <ZFPlayer/ZFAVPlayerManager.h>
#import <ZFPlayer/ZFPlayerControlView.h>@interface ViewController ()@property(nonatomic, strong) UIView *forPlayView;
@property(nonatomic, strong) ZFPlayerController *player;
@property(nonatomic, strong) ZFAVPlayerManager *playerManager;
@property(nonatomic, strong) ZFPlayerControlView *controlView;
@property(nonatomic, strong) UIButton *closeBtn;@end@implementation ViewController- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event {NSString *videoUrl = @"http://clips.vorwaerts-gmbh.de/big_buck_bunny.mp4";[self.player.currentPlayerManager setAssetURL:[NSURL URLWithString:videoUrl]];self.forPlayView.hidden = NO;self.closeBtn.hidden = NO;
}- (void)viewDidLoad {[super viewDidLoad];[self.view addSubview:self.forPlayView];[self.view addSubview:self.closeBtn];
}- (void)viewWillLayoutSubviews {[super viewWillLayoutSubviews];self.forPlayView.frame = self.view.bounds;self.closeBtn.frame = self.view.bounds;
}- (void)viewDidDisappear:(BOOL)animated {[super viewDidDisappear:animated];[self playerDealloc];
}- (UIView *)forPlayView {if(_forPlayView == nil) {_forPlayView = [[UIView alloc]init];_forPlayView.hidden = YES;}return _forPlayView;
}- (UIButton *)closeBtn {if(_closeBtn == nil) {_closeBtn = [[UIButton alloc]init];[_closeBtn addTarget:self action:@selector(closeBtnClick) forControlEvents:UIControlEventTouchUpInside];}return _closeBtn;
}#pragma mark - 网络视频模块- (ZFAVPlayerManager *)playerManager {if(_playerManager == nil) {_playerManager = [[ZFAVPlayerManager alloc] init];}return _playerManager;
}- (ZFPlayerController *)player {if(_player == nil) {_player = [[ZFPlayerController alloc] initWithPlayerManager:self.playerManager containerView:self.forPlayView];_player.controlView = self.controlView;_player.playerDisapperaPercent = 1.0f;//__weak typeof(self) weakSelf = self;_player.playerDidToEnd = ^(id<ZFPlayerMediaPlayback> asset) { //结束播放};[_player setPlayerPlayStateChanged:^(id<ZFPlayerMediaPlayback> asset, ZFPlayerPlaybackState playState) {if(playState == ZFPlayerPlayStatePlayStopped) {NSLog(@"播放暂停");}}];[_player setPlayerPlayTimeChanged:^(id<ZFPlayerMediaPlayback> asset, NSTimeInterval currentTime, NSTimeInterval duration) {NSLog(@"播放改变currentTime - %f duration - %f", currentTime, duration);}];}return _player;
}- (ZFPlayerControlView *)controlView {if (_controlView == nil) {_controlView = [[ZFPlayerControlView alloc]init];_controlView.prepareShowLoading = YES;}return _controlView;
}- (void)playerDealloc {//网络视频if(_playerManager) {_playerManager = nil;}if(_player) {_player.viewControllerDisappear = YES;[_player stop];_player = nil;}
}- (void)closeBtnClick {self.closeBtn.hidden = YES;self.forPlayView.hidden = YES;//[self playerDealloc];
}@end
注意
- 因为播放的是网络视频, 记得在info.plist ->右击->sourceCode->插入ATS
<key>NSAppTransportSecurity</key>
<dict><key>NSAllowsArbitraryLoads</key><true/>
</dict>
- 如下任何一个地方都行
iOS开发-ZFPlayer的简单使用 播放单个网络视频相关推荐
- iOS开发UI篇—简单介绍静态单元格的使用
iOS开发UI篇-简单介绍静态单元格的使用 一.实现效果与说明 说明:观察上面的展示效果,可以发现整个界面是由一个tableview来展示的,上面的数据都是固定的,且几乎不会改变. 要完成上面的效果, ...
- 李洪强iOS开发之- 实现简单的弹窗
李洪强iOS开发之- 实现简单的弹窗 实现的效果: 112222222222223333333333333333
- 【Android开发VR实战】二.播放360°全景视频
转载请注明出处:http://blog.csdn.net/linglongxin24/article/details/53924006 本文出自[DylanAndroid的博客] [Android开发 ...
- Android Studio 实现播放本地/网络视频
Android Studio 实现播放本地/网络视频 目的 工具及环境 功能设计 VideoView 简介 常用方法 代码解释 本地视频播放器 activity_main.xml MainActivi ...
- iOS开发(OC)——音频播放AVPlayer
AVPlayer支持在线播放,使用如下: 1.头文件 #import <AVFoundation/AVFoundation.h> @property (nonatomic, strong) ...
- iOS开发 - 用AVPlayer封装一个播放器
因为GIF上传的时候一直失败,所以大家到Github查看效果图 https://github.com/codeliu6572/LHHVideoPlayer 由于亮度和音量只能在真机上显现效果,所以GI ...
- iOS开发:iPhone设备图片、音乐、视频获取实践
背景介绍 出于项目需求,需要基于iphone设备内图片及音乐.视频资源完成一些功能.功能包括以几点:1.需要在APP内获得并处理iphone设备内的图片.音频和视频:2.在APP内嵌入拍照入口,可以拍 ...
- IOS开发视频教程《保卫萝卜》-任亮-专题视频课程
IOS开发视频教程<保卫萝卜>-3411人已学习 课程介绍 <保卫萝卜CarrotFantasy>是一款由开发商"凯罗天下"开发的超萌塔防小 ...
- iOS开发中,通过URL地址获取网络上的图片
在iOS开发中,我们有时会通过图片的URL地址来获取网上的图片,下面是一个方法实现: /** 通过URL地址从网上获取图片 */ -(UIImage *) getImageFromURL:(NSStr ...
最新文章
- ros消息服务器,ROS服务和消息
- 单片机I/O口推挽输出与开漏输出的区别(open-drain与push-pull)
- apt get 安装mysql5.7_ubuntu18.04中安装mysql(5.7)步骤详细介绍
- springmvc +bootstrap创建简单web项目
- 农艺师需要职称计算机,2015年农艺师职称计算机考试宝典.doc
- 为集合排序的三个方法
- Python 查看pip安装的包的位置(查看pip安装包的路径)
- 紫光展锐【软件工程师】面经
- c语言推箱子代码_C语言烂大街的东西都学不会!C语言多关卡推箱子制作教程
- PHP+MYSQL图书管理系统(课设)
- 对WordCOM类工厂80070005和8000401a错误分析及解决办法(DCOM)的补充
- 技术经济与企业管理复习知识点总结
- 仙童的ua741运算放大器内部电路
- 海思视频码率参数解析
- 数据分析师与数据科学家的区别
- vue中json数据格式化
- Java奇数与偶数的判断
- 时值年末,年度CSDN小峯的回顾过去的2020年(推荐)
- Deepin安装python3
- 通过阿里云或清华镜像站安装tensorflow2.0
热门文章
- led数码显示控制plc实验_一种LED数码显示的PLC控制程序及方法与流程
- 微软与GitHub百人签名,力挺996.ICU项目
- 航程门业:如何选购实木复合门及如何保养
- javapoet的认识
- tp5接收前台传的值_tp5数据接收
- html银河特效编码,html5 canvas银河星系动画特效
- go语言宕机(panic)——程序终止运行
- 安卓模拟器安装教程_无限多开仙境传说RO!第一安卓模拟器BlueStacks蓝叠安卓模拟器多开教程...
- dubbo服务暴露流程总结
- cannot find -lGL(CentOS8 QT5.12.12)