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的简单使用 播放单个网络视频相关推荐

  1. iOS开发UI篇—简单介绍静态单元格的使用

    iOS开发UI篇-简单介绍静态单元格的使用 一.实现效果与说明 说明:观察上面的展示效果,可以发现整个界面是由一个tableview来展示的,上面的数据都是固定的,且几乎不会改变. 要完成上面的效果, ...

  2. 李洪强iOS开发之- 实现简单的弹窗

     李洪强iOS开发之- 实现简单的弹窗 实现的效果:  112222222222223333333333333333

  3. 【Android开发VR实战】二.播放360°全景视频

    转载请注明出处:http://blog.csdn.net/linglongxin24/article/details/53924006 本文出自[DylanAndroid的博客] [Android开发 ...

  4. Android Studio 实现播放本地/网络视频

    Android Studio 实现播放本地/网络视频 目的 工具及环境 功能设计 VideoView 简介 常用方法 代码解释 本地视频播放器 activity_main.xml MainActivi ...

  5. iOS开发(OC)——音频播放AVPlayer

    AVPlayer支持在线播放,使用如下: 1.头文件 #import <AVFoundation/AVFoundation.h> @property (nonatomic, strong) ...

  6. iOS开发 - 用AVPlayer封装一个播放器

    因为GIF上传的时候一直失败,所以大家到Github查看效果图 https://github.com/codeliu6572/LHHVideoPlayer 由于亮度和音量只能在真机上显现效果,所以GI ...

  7. iOS开发:iPhone设备图片、音乐、视频获取实践

    背景介绍 出于项目需求,需要基于iphone设备内图片及音乐.视频资源完成一些功能.功能包括以几点:1.需要在APP内获得并处理iphone设备内的图片.音频和视频:2.在APP内嵌入拍照入口,可以拍 ...

  8. IOS开发视频教程《保卫萝卜》-任亮-专题视频课程

    IOS开发视频教程<保卫萝卜>-3411人已学习 课程介绍         <保卫萝卜CarrotFantasy>是一款由开发商"凯罗天下"开发的超萌塔防小 ...

  9. iOS开发中,通过URL地址获取网络上的图片

    在iOS开发中,我们有时会通过图片的URL地址来获取网上的图片,下面是一个方法实现: /** 通过URL地址从网上获取图片 */ -(UIImage *) getImageFromURL:(NSStr ...

最新文章

  1. ros消息服务器,ROS服务和消息
  2. 单片机I/O口推挽输出与开漏输出的区别(open-drain与push-pull)
  3. apt get 安装mysql5.7_ubuntu18.04中安装mysql(5.7)步骤详细介绍
  4. springmvc +bootstrap创建简单web项目
  5. 农艺师需要职称计算机,2015年农艺师职称计算机考试宝典.doc
  6. 为集合排序的三个方法
  7. Python 查看pip安装的包的位置(查看pip安装包的路径)
  8. 紫光展锐【软件工程师】面经
  9. c语言推箱子代码_C语言烂大街的东西都学不会!C语言多关卡推箱子制作教程
  10. PHP+MYSQL图书管理系统(课设)
  11. 对WordCOM类工厂80070005和8000401a错误分析及解决办法(DCOM)的补充
  12. 技术经济与企业管理复习知识点总结
  13. 仙童的ua741运算放大器内部电路
  14. 海思视频码率参数解析
  15. 数据分析师与数据科学家的区别
  16. vue中json数据格式化
  17. Java奇数与偶数的判断
  18. 时值年末,年度CSDN小峯的回顾过去的2020年(推荐)
  19. Deepin安装python3
  20. 通过阿里云或清华镜像站安装tensorflow2.0

热门文章

  1. led数码显示控制plc实验_一种LED数码显示的PLC控制程序及方法与流程
  2. 微软与GitHub百人签名,力挺996.ICU项目
  3. 航程门业:如何选购实木复合门及如何保养
  4. javapoet的认识
  5. tp5接收前台传的值_tp5数据接收
  6. html银河特效编码,html5 canvas银河星系动画特效
  7. go语言宕机(panic)——程序终止运行
  8. 安卓模拟器安装教程_无限多开仙境传说RO!第一安卓模拟器BlueStacks蓝叠安卓模拟器多开教程...
  9. dubbo服务暴露流程总结
  10. cannot find -lGL(CentOS8 QT5.12.12)