本文在5的基础上进行了一下小重构,界面更加简单,把5中的播放、暂停、继续播放三个按钮合为一个按钮,功能逻辑都在一个按钮上面进行控制

代码如下:

//
//  ViewController.swift
//  VitamioSDKDemo
//
//  Created by targetcloud on 2016/11/30.
//  Copyright © 2016年 targetcloud. All rights reserved.
//
//可用格式
/*".M1V", ".MP2", ".MPE", ".MPG", ".WMAA",".MPEG", ".MP4", ".M4V", ".3GP", ".3GPP", ".3G2", ".3GPP2", ".MKV",".WEBM", ".MTS", ".TS", ".TP", ".WMV", ".ASF", ".ASX", ".FLV",".MOV", ".QT", ".RM", ".RMVB", ".VOB", ".DAT", ".AVI", ".OGV",".OGG", ".VIV", ".VIVO", ".WTV", ".AVS", ".SWF", ".YUV"*/
import UIKitclass ViewController: UIViewController,VMediaPlayerDelegate {@IBOutlet weak var progressSlider: UISlider!@IBOutlet weak var playOrPauseBtn: UIButton!@IBOutlet weak var videoPlayerView: UIView!lazy var mMPlayer : VMediaPlayer = {let player = VMediaPlayer.sharedInstance()player?.setupPlayer(withCarrierView: self.videoPlayerView, with: self)return player!}()var didPrepared : Bool = falsefunc prepareVideo(){UIApplication.shared.isIdleTimerDisabled = truelet url = URL(string: "http://v1.mukewang.com/57de8272-38a2-4cae-b734-ac55ab528aa8/L.mp4")mMPlayer.setDataSource(url!)mMPlayer.prepareAsync()}@IBAction func play() {if mMPlayer.isPlaying(){mMPlayer.pause()playOrPauseBtn.isSelected = false}else{if didPrepared{mMPlayer.start()}else{prepareVideo()}playOrPauseBtn.isSelected = true}}@IBAction func stop() {playOrPauseBtn.isSelected = falsedidPrepared = falsemMPlayer.reset()}@IBAction func valueChange(_ sender: UISlider) {let time = Int(sender.value * Float((mMPlayer.getDuration())))mMPlayer.seek(to: time)}// delegate 的三个方法func mediaPlayer(_ player: VMediaPlayer!, didPrepared arg: Any) {playOrPauseBtn.isSelected = true//暂停didPrepared = trueplayer.start()}func mediaPlayer(_ player: VMediaPlayer!, playbackComplete arg: Any) {playOrPauseBtn.isSelected = false//播放didPrepared = falseplayer.reset()}func mediaPlayer(_ player: VMediaPlayer!, error arg: Any) {print(arg)}// viewoverride func viewDidDisappear(_ animated: Bool) {mMPlayer.unSetupPlayer()}override func viewDidLoad() {super.viewDidLoad()progressSlider.setThumbImage(UIImage(named: "thumbImage"), for: UIControlState())}}

后续重构进继续关注后面博文

视频播放(六)万能播放器的小重构(swift3.0)相关推荐

  1. 万能播放器 PotPlayer 的下载与安装,直播流 m3u8 导入

    一.工具介绍 1.1.PotPlayer是一款来自韩国的全能音视频播放器,它兼容了世界上所有主流音视频文件(换句话,没有它播放不了的视频或音频文件),如:AVI.MPEG.TS.MKV.MP4.WEB ...

  2. 使用Vitamio打造自己的Android万能播放器(2)—— 手势控制亮度、音量、缩放

    前言 本章继续完善播放相关播放器的核心功能,为后续扩展打好基础. 声明 欢迎转载,但请保留文章原始出处:)  博客园:http://www.cnblogs.com 农民伯伯: http://over1 ...

  3. 使用Vitamio打造自己的Android万能播放器(5)——在线播放(播放优酷视频)

    前言 为了保证每周一篇的进度,又由于Vitamio新版本没有发布, 决定推迟本地播放的一些功能(截图.视频时间.尺寸等),跳过直接写在线播放部分的章节.从Vitamio的介绍可以看得出,其支持http ...

  4. 播放器android版最新官方版下载安装,万能播放器安卓版下载

    万能播放器安卓版下载介绍 万能播放器安卓版下载是一款操作简单的影音文件播放工具,小伙伴们可以使用万能播放器播放喜欢的影音文件.万能播放器可支持p2p在线点播.边看边下.防病毒等功能.万能播放器几乎兼容 ...

  5. linux系统万能播放器下载,360万能播放器Linux版

    360万能播放器Linux版是一款十分不错的播放器,它可以帮助用户轻松播放出各种格式的音视频文件,所以喜欢看视频的用户,快来下载试试吧! 软件介绍 360万能播放器Linux版是一款在Linux系统上 ...

  6. 使用Vitamio打造自己的Android万能播放器—— 手势控制亮度、音量、缩放

    使用Vitamio打造自己的Android万能播放器(1)--准备 一.实现目标 1.1亮度控制 模仿VPlayer界面: 1.2声音控制 模仿VPlayer界面: 1.3画面缩放 根据下面API ...

  7. Vitamio库打造万能播放器(四)

    接着上一篇文章 Vitamio库打造万能播放器(三) 终于到了介绍vitamio的使用了,这个库使用起来非常简单,很容易上手,只需要将前面我们创建好的VideoPlayerActivity的Video ...

  8. Vitamio打造自己的Android万能播放器

    前言 虽然Android已经内置了VideoView组件和MediaPlayer类来支持开发视频播放器,但支持格式.性能等各方面都十分有限,这里与大家一起利用免费的Vitamio来打造属于自己的And ...

  9. 使用Vitamio打造自己的Android万能播放器(1)——准备

    前言 虽然Android已经内置了VideoView组件和MediaPlayer类来支持开发视频播放器,但支持格式.性能等各方面都十分有限,这里与大家一起利用免费的Vitamio来打造属于自己的And ...

最新文章

  1. MongoDB架构——记得结合前面的文章看,里面的图画的很好
  2. 泛型 与 实体类的相互转换
  3. fedora16配制
  4. 超过200m文件发送_苦等10年的微信功能——大文件功能来了
  5. IDEA切换git分支
  6. .NET调用Oracle存储过程,使用数组类型的参数(如ArrayList)
  7. DELL服务器T410进行系统修复,ibm T410 BIOS修复过程-BIOS维修网站www.biosrepair.com
  8. mysql查逻辑表的分片规则_MySQL(19) Mycat分片(分库分表)配置
  9. 队列处理高并发_高并发场景下缓存处理的一些思路
  10. 交互式地图_张晟推出学校资源交互式地图工具
  11. android java service_[Java教程]Android四大组件之Service浅见
  12. 微机课设 | 基于STC15单片机的简易数字密码锁设计
  13. 图像处理(一)图像灰度化的三种方式
  14. Python实现图片灰度化
  15. Linux驱动里的wmb函数
  16. 继电器触点RC吸收电路
  17. Python爬虫_03_urllib_xpath_JsonPath_BeautifulSoup应用及案例
  18. 5G 理论峰值速率是怎么计算的?
  19. php将ppt转jpg图片的具体步骤代码
  20. 编译原理:cminus_compiler-2021-fall Lab3

热门文章

  1. 高职计算机期末质量分析,计算机考试质量分析
  2. 基于ARM的视频监控系统的设计与实现
  3. 【SQL Server】数据库开发指南(五)T-SQL 高级查询综合应用与实战
  4. 计算机组装win7实训报告,计算机实训报告范文精选5篇
  5. 整理的最新WebSHell (php过狗一句话,过狗菜刀,2016过狗一句话,2016php免杀一句话)
  6. 烽火HG680-LC免费固件包_同时支持CM211-1zg、CH M304A ZN、MGV2000爱家tv
  7. PPT制作小技巧分享
  8. 计算机usb口被禁用怎么解决,电脑USB接口被禁用了,小编教你怎么开启
  9. Java encodeURI
  10. 【数据质量】数据质量管理工具预研——Griffin VS Deequ VS Great expectations VS Qualitis