|
|
|
@ -34,11 +34,11 @@ class VideoCallViewController: UIViewController {
|
|
|
|
var seconds = 30
|
|
|
|
var seconds = 30
|
|
|
|
var isUserConnect : Bool = false
|
|
|
|
var isUserConnect : Bool = false
|
|
|
|
|
|
|
|
|
|
|
|
var onMinimize:((Bool)->Void)? = nil
|
|
|
|
var onFloat:((Bool)->Void)? = nil
|
|
|
|
var onHide:(()->Void)? = nil
|
|
|
|
var onMinimize:(()->Void)? = nil
|
|
|
|
var onVideoDuration:((String)->Void)? = nil
|
|
|
|
var onCallConnect:(()->Void)? = nil
|
|
|
|
var onClose:(()->Void)? = nil
|
|
|
|
var onCallDisconnect:(()->Void)? = nil
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@IBOutlet weak var lblRemoteUsername: UILabel!
|
|
|
|
@IBOutlet weak var lblRemoteUsername: UILabel!
|
|
|
|
|
|
|
|
|
|
|
|
@ -61,6 +61,7 @@ class VideoCallViewController: UIViewController {
|
|
|
|
@IBOutlet weak var remoteVideo: UIView!
|
|
|
|
@IBOutlet weak var remoteVideo: UIView!
|
|
|
|
@IBOutlet weak var localVideo: UIView!{
|
|
|
|
@IBOutlet weak var localVideo: UIView!{
|
|
|
|
didSet{
|
|
|
|
didSet{
|
|
|
|
|
|
|
|
localVideo.layer.borderColor = UIColor.white.cgColor
|
|
|
|
localVideoDraggable = localVideo?.superview as? AADraggableView
|
|
|
|
localVideoDraggable = localVideo?.superview as? AADraggableView
|
|
|
|
localVideoDraggable?.reposition = .edgesOnly
|
|
|
|
localVideoDraggable?.reposition = .edgesOnly
|
|
|
|
}
|
|
|
|
}
|
|
|
|
@ -74,7 +75,6 @@ class VideoCallViewController: UIViewController {
|
|
|
|
@IBAction func didClickMuteButton(_ sender: UIButton) {
|
|
|
|
@IBAction func didClickMuteButton(_ sender: UIButton) {
|
|
|
|
sender.isSelected = !sender.isSelected
|
|
|
|
sender.isSelected = !sender.isSelected
|
|
|
|
publisher!.publishAudio = !sender.isSelected
|
|
|
|
publisher!.publishAudio = !sender.isSelected
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@IBAction func didClickSpeakerButton(_ sender: UIButton) {
|
|
|
|
@IBAction func didClickSpeakerButton(_ sender: UIButton) {
|
|
|
|
@ -113,24 +113,24 @@ class VideoCallViewController: UIViewController {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@IBAction func hideVideoBtnTapped(_ sender: Any) {
|
|
|
|
@IBAction func hideVideoBtnTapped(_ sender: Any) {
|
|
|
|
onHide?()
|
|
|
|
onMinimize?()
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
var minimized = false
|
|
|
|
var floated = false
|
|
|
|
@IBAction func onMinimize(_ sender: UIButton) {
|
|
|
|
@IBAction func onMinimize(_ sender: UIButton) {
|
|
|
|
minimized = !minimized
|
|
|
|
floated = !floated
|
|
|
|
onMinimize?(minimized)
|
|
|
|
onFloat?(floated)
|
|
|
|
sender.isSelected = minimized
|
|
|
|
sender.isSelected = floated
|
|
|
|
|
|
|
|
|
|
|
|
NSLayoutConstraint.activate(minimized ? minimizeConstraint : maximisedConstraint)
|
|
|
|
NSLayoutConstraint.activate(floated ? minimizeConstraint : maximisedConstraint)
|
|
|
|
NSLayoutConstraint.deactivate(minimized ? maximisedConstraint : minimizeConstraint)
|
|
|
|
NSLayoutConstraint.deactivate(floated ? maximisedConstraint : minimizeConstraint)
|
|
|
|
localVideoDraggable?.enable(!minimized)
|
|
|
|
localVideoDraggable?.enable(!floated)
|
|
|
|
|
|
|
|
|
|
|
|
lblRemoteUsername.isHidden = minimized
|
|
|
|
lblRemoteUsername.isHidden = floated
|
|
|
|
hideVideoBtn.isHidden = !minimized
|
|
|
|
hideVideoBtn.isHidden = !floated
|
|
|
|
lblCallDuration.superview?.isHidden = !hideVideoBtn.isHidden
|
|
|
|
lblCallDuration.superview?.isHidden = !hideVideoBtn.isHidden
|
|
|
|
|
|
|
|
|
|
|
|
let min_ = minimized
|
|
|
|
let min_ = floated
|
|
|
|
UIView.animate(withDuration: 0.5) {
|
|
|
|
UIView.animate(withDuration: 0.5) {
|
|
|
|
self.videoMuteBtn.isHidden = min_
|
|
|
|
self.videoMuteBtn.isHidden = min_
|
|
|
|
self.micMuteBtn.isHidden = min_
|
|
|
|
self.micMuteBtn.isHidden = min_
|
|
|
|
@ -157,7 +157,6 @@ class VideoCallViewController: UIViewController {
|
|
|
|
let durationString = "\(mins):\(secs)"
|
|
|
|
let durationString = "\(mins):\(secs)"
|
|
|
|
|
|
|
|
|
|
|
|
self.lblCallDuration.text = durationString
|
|
|
|
self.lblCallDuration.text = durationString
|
|
|
|
self.onVideoDuration?(durationString)
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@ -277,7 +276,8 @@ class VideoCallViewController: UIViewController {
|
|
|
|
dismiss(animated: true)
|
|
|
|
dismiss(animated: true)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
dismiss(animated: true)
|
|
|
|
dismiss(animated: true)
|
|
|
|
onClose?()
|
|
|
|
onCallDisconnect?()
|
|
|
|
|
|
|
|
durationTimer?.invalidate()
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
func requestCameraPermissionsIfNeeded() {
|
|
|
|
func requestCameraPermissionsIfNeeded() {
|
|
|
|
@ -435,6 +435,7 @@ extension VideoCallViewController: OTSessionDelegate {
|
|
|
|
remoteVideo.addSubview(subscriberView)
|
|
|
|
remoteVideo.addSubview(subscriberView)
|
|
|
|
|
|
|
|
|
|
|
|
startUpdateCallDuration()
|
|
|
|
startUpdateCallDuration()
|
|
|
|
|
|
|
|
onCallConnect?()
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
func setupSubscribe(_ stream: OTStream?) {
|
|
|
|
func setupSubscribe(_ stream: OTStream?) {
|
|
|
|
|