本文在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())
}
}
后续重构进继续关注后面博文