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

本文在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 UIKit

class 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 = false
    
    func prepareVideo(){
        UIApplication.shared.isIdleTimerDisabled = true
        let 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 = false
        didPrepared = false
        mMPlayer.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 = true
        player.start()
    }
    
    func mediaPlayer(_ player: VMediaPlayer!, playbackComplete arg: Any) {
        playOrPauseBtn.isSelected = false//播放
        didPrepared = false
        player.reset()
    }
    
    func mediaPlayer(_ player: VMediaPlayer!, error arg: Any) {
        print(arg)
    }

    // view
    override func viewDidDisappear(_ animated: Bool) {
        mMPlayer.unSetupPlayer()
    }
    
    override func viewDidLoad() {
        super.viewDidLoad()
        progressSlider.setThumbImage(UIImage(named: "thumbImage"), for: UIControlState())
    }

}

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值