|
@@ -129,11 +129,12 @@ public class BFRecordScreenController: BFBaseViewController {
|
|
|
|
|
|
lazy var recordBtn:UIButton = {
|
|
|
let btn = UIButton(type: .custom)
|
|
|
- btn.backgroundColor = ThemeStyleGreen
|
|
|
+ btn.backgroundColor = ThemeStyleGreen()
|
|
|
btn.setTitle("按住 说话", for: .normal)
|
|
|
btn.adjustsImageWhenHighlighted = false
|
|
|
btn.addTarget(self, action: #selector(startRecord), for: .touchDown)
|
|
|
btn.addTarget(self, action: #selector(endRecord), for: .touchUpInside)
|
|
|
+
|
|
|
return btn
|
|
|
}()
|
|
|
|
|
@@ -160,13 +161,14 @@ public class BFRecordScreenController: BFBaseViewController {
|
|
|
sliderView.addTarget(self, action: #selector(sliderTouchEnded(sender:)), for: .touchUpInside)
|
|
|
sliderView.addTarget(self, action: #selector(sliderTouchEnded(sender:)), for: .touchUpOutside)
|
|
|
sliderView.addTarget(self, action: #selector(sliderTouchEnded(sender:)), for: .touchCancel)
|
|
|
+ sliderView.addTarget(self, action: #selector(sliderValueDidChanged(sender:)), for: .valueChanged)
|
|
|
return sliderView
|
|
|
}()
|
|
|
|
|
|
lazy var withDrawBtn:UIButton = {
|
|
|
let btn = UIButton(type: .custom)
|
|
|
- btn.setImage(imageInRecordScreenKit(by: "withdraw_h"), for: .normal)
|
|
|
- btn.setImage(imageInRecordScreenKit(by: "withdraw_n"), for: .highlighted)
|
|
|
+ btn.setImage(imageInRecordScreenKit(by: "withdraw_n"), for: .normal)
|
|
|
+ btn.setImage(imageInRecordScreenKit(by: "withdraw_h"), for: .highlighted)
|
|
|
btn.setTitle("撤销", for: .normal)
|
|
|
btn.setTitleColor(.white, for: .normal)
|
|
|
btn.setTitleColor(.gray, for: .highlighted)
|
|
@@ -182,7 +184,7 @@ public class BFRecordScreenController: BFBaseViewController {
|
|
|
btn.setImage(imageInRecordScreenKit(by: "changeVoice_h"), for: .highlighted)
|
|
|
btn.setTitle("变声", for: .normal)
|
|
|
btn.setTitleColor(.white, for: .normal)
|
|
|
- btn.setTitleColor(ThemeStyleGreen, for: .highlighted)
|
|
|
+ btn.setTitleColor(ThemeStyleGreen(), for: .highlighted)
|
|
|
btn.titleLabel?.font = UIFont.systemFont(ofSize: 12)
|
|
|
btn.contentVerticalAlignment = UIControl.ContentVerticalAlignment.center;
|
|
|
btn.addTarget(self, action: #selector(changeVoiceAction), for: .touchUpInside)
|
|
@@ -349,7 +351,7 @@ public class BFRecordScreenController: BFBaseViewController {
|
|
|
model.volume = 100
|
|
|
recorderManager.voiceModel = model
|
|
|
recorderManager.startRecord(index: recordList.count)
|
|
|
- movie?.startProcessing()
|
|
|
+// movie?.startProcessing()
|
|
|
assetPlayer?.volume = 0
|
|
|
assetPlayer?.play()
|
|
|
}
|
|
@@ -383,17 +385,21 @@ public class BFRecordScreenController: BFBaseViewController {
|
|
|
btn.isSelected ? pause() : play()
|
|
|
}
|
|
|
|
|
|
- @objc public func sliderTouchBegan(sender _: UISlider) {
|
|
|
+ @objc func sliderTouchBegan(sender _: UISlider) {
|
|
|
isDragingProgressSlder = true
|
|
|
pause()
|
|
|
}
|
|
|
|
|
|
- @objc public func sliderTouchEnded(sender: UISlider) {
|
|
|
+ @objc func sliderTouchEnded(sender: UISlider) {
|
|
|
changeProgress(progress: sender.value)
|
|
|
isDragingProgressSlder = false
|
|
|
currentPlayRecordIndex = -1
|
|
|
hadPrepareToPlayRecord = false
|
|
|
}
|
|
|
+ @objc func sliderValueDidChanged(sender: UISlider) {
|
|
|
+ changeProgress(progress: sender.value)
|
|
|
+
|
|
|
+ }
|
|
|
|
|
|
// MARK: - 权限申请
|
|
|
func checkStatus(show: Bool = true) -> Bool {
|
|
@@ -534,7 +540,7 @@ public class BFRecordScreenController: BFBaseViewController {
|
|
|
func pause(){
|
|
|
BFLog(1, message: "暂停播放")
|
|
|
isNormalPlaying = false
|
|
|
- movie?.cancelProcessing()
|
|
|
+// movie?.cancelProcessing()
|
|
|
assetPlayer?.pause()
|
|
|
recordPlayer?.pause()
|
|
|
|
|
@@ -581,6 +587,10 @@ public class BFRecordScreenController: BFBaseViewController {
|
|
|
PHCachingImageManager().requestAVAsset(forVideo: asset, options: options, resultHandler: {[weak self] (asset: AVAsset?, audioMix: AVAudioMix?, info) in
|
|
|
if let urlass = asset as? AVURLAsset {
|
|
|
self?.avasset = urlass
|
|
|
+ DispatchQueue.main.async {[weak self] in
|
|
|
+ let progressThumV = BFVideoThumbProgressView(frame: CGRect(x: 0, y: 20, width: cScreenWidth, height: 50), videoAsset: self!.avasset!)
|
|
|
+ self?.bottomeView.addSubview(progressThumV)
|
|
|
+ }
|
|
|
}
|
|
|
})
|
|
|
}
|
|
@@ -598,6 +608,8 @@ public class BFRecordScreenController: BFBaseViewController {
|
|
|
let filter = GPUImageFilter()
|
|
|
movie?.addTarget(filter)
|
|
|
filter.addTarget(playView)
|
|
|
+
|
|
|
+ movie?.startProcessing()
|
|
|
}
|
|
|
|
|
|
func setAudioPlay(item:AVPlayerItem){
|
|
@@ -659,10 +671,10 @@ public class BFRecordScreenController: BFBaseViewController {
|
|
|
if let duration = assetPlayer?.currentItem?.duration {
|
|
|
self.currentAssetProgress = CMTime(value: CMTimeValue(progress * Float(CMTimeGetSeconds(duration)) * 100), timescale: 100)
|
|
|
assetPlayer!.seek(to: self.currentAssetProgress, toleranceBefore: CMTime(value: 1, timescale: 1000), toleranceAfter: CMTime(value: 1, timescale: 1000)) {[weak self] finished in
|
|
|
- if finished{
|
|
|
- BFLog(1, message: "拖动成功")
|
|
|
- self?.movie?.startProcessing()
|
|
|
- }
|
|
|
+// if finished{
|
|
|
+// BFLog(1, message: "拖动成功")
|
|
|
+// self?.movie?.startProcessing()
|
|
|
+// }
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -677,7 +689,7 @@ public class BFRecordScreenController: BFBaseViewController {
|
|
|
let height = self?.progessSildeBackV.height ?? 0
|
|
|
list.forEach { model in
|
|
|
let lineV = UIView(frame: CGRect(x: model.startTime * width / totalDur , y: 0, width: (model.endTime - model.startTime) * width / totalDur, height: height))
|
|
|
- lineV.backgroundColor = ThemeStyleGreen
|
|
|
+ lineV.backgroundColor = ThemeStyleGreen()
|
|
|
self?.progessSildeBackV.addSubview(lineV)
|
|
|
}
|
|
|
}
|