|
@@ -1653,43 +1653,62 @@ public class BFRecordScreenController: BFBaseViewController {
|
|
// 是否吸附在录音首尾处
|
|
// 是否吸附在录音首尾处
|
|
func searchStopAtRecordRange(needAdsorb: Bool = false) {
|
|
func searchStopAtRecordRange(needAdsorb: Bool = false) {
|
|
// TODO: 滑动,播放暂停,撤销时,判断是否停止录音区间,是则删除相关录音,画笔,头像,字幕
|
|
// TODO: 滑动,播放暂停,撤销时,判断是否停止录音区间,是则删除相关录音,画笔,头像,字幕
|
|
- let elems = itemModels[currItemModelIndex].voiceStickers.enumerated().filter { elem in
|
|
|
|
- CMTimeCompare(elem.1.startCMTime, currentAssetProgress) <= 0 && elem.1.endCMTime > currentAssetProgress
|
|
|
|
|
|
+
|
|
|
|
+ var startTime: CMTime?
|
|
|
|
+ var endTime: CMTime?
|
|
|
|
+ isStopAtRecordRange = -1
|
|
|
|
+
|
|
|
|
+ if currMediaType == .Camera {
|
|
|
|
+ let elems = itemModels[currItemModelIndex].videoStickers.enumerated().filter { elem in
|
|
|
|
+ CMTimeCompare(elem.1.timelineCMIn, currentAssetProgress) <= 0 && elem.1.timelineCMOut > currentAssetProgress
|
|
|
|
+ }
|
|
|
|
+ if elems.count > 0 {
|
|
|
|
+ startTime = elems[0].1.timelineCMIn
|
|
|
|
+ endTime = elems[0].1.timelineCMOut
|
|
|
|
+ isStopAtRecordRange = elems[0].0
|
|
|
|
+ }
|
|
|
|
+ }else {
|
|
|
|
+ let elems = itemModels[currItemModelIndex].voiceStickers.enumerated().filter { elem in
|
|
|
|
+ CMTimeCompare(elem.1.startCMTime, currentAssetProgress) <= 0 && elem.1.endCMTime > currentAssetProgress
|
|
|
|
+ }
|
|
|
|
+ if elems.count > 0 {
|
|
|
|
+ startTime = elems[0].1.startCMTime
|
|
|
|
+ endTime = elems[0].1.endCMTime
|
|
|
|
+ isStopAtRecordRange = elems[0].0
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
|
|
- if elems.count > 0 && !isEndPlay{
|
|
|
|
|
|
+ if startTime != nil && endTime != nil && !isEndPlay{
|
|
// TODO: 停在了录音区间,显示删除按钮
|
|
// TODO: 停在了录音区间,显示删除按钮
|
|
if needAdsorb {
|
|
if needAdsorb {
|
|
- if fabs((elems[0].1.endCMTime - currentAssetProgress).seconds) < 0.5 {
|
|
|
|
- BFLog(1, message: "吸附在录音结尾, \(elems[0].1.endCMTime.seconds)")
|
|
|
|
|
|
+ if fabs((endTime! - currentAssetProgress).seconds) < 0.5 {
|
|
|
|
+ BFLog(1, message: "吸附在录音结尾, \(endTime!.seconds)")
|
|
// changeWithDrawBtnLayout(false)
|
|
// changeWithDrawBtnLayout(false)
|
|
- changeProgress(changCMTime: elems[0].1.endCMTime)
|
|
|
|
- progressThumV.progress = elems[0].1.endCMTime.seconds
|
|
|
|
|
|
+ changeProgress(changCMTime: endTime!)
|
|
|
|
+ progressThumV.progress = endTime!.seconds
|
|
|
|
|
|
searchStopAtRecordRange(needAdsorb: false)
|
|
searchStopAtRecordRange(needAdsorb: false)
|
|
return
|
|
return
|
|
} else {
|
|
} else {
|
|
- if fabs((elems[0].1.startCMTime - currentAssetProgress).seconds) < 0.5 {
|
|
|
|
|
|
+ if fabs((startTime! - currentAssetProgress).seconds) < 0.5 {
|
|
BFLog(1, message: "吸附在录音开始")
|
|
BFLog(1, message: "吸附在录音开始")
|
|
// changeWithDrawBtnLayout(true)
|
|
// changeWithDrawBtnLayout(true)
|
|
- changeProgress(changCMTime: elems[0].1.startCMTime)
|
|
|
|
- progressThumV.progress = elems[0].1.startCMTime.seconds
|
|
|
|
|
|
+ changeProgress(changCMTime: startTime!)
|
|
|
|
+ progressThumV.progress = startTime!.seconds
|
|
}
|
|
}
|
|
deleteRecordBtn.isHidden = false
|
|
deleteRecordBtn.isHidden = false
|
|
recordBtn.isHidden = true
|
|
recordBtn.isHidden = true
|
|
// add by ak 这里 isHidden 无效
|
|
// add by ak 这里 isHidden 无效
|
|
recordBtn.alpha = 0
|
|
recordBtn.alpha = 0
|
|
- isStopAtRecordRange = elems.first!.0
|
|
|
|
|
|
|
|
- BFLog(1, message: "停在了录音区间里 \(isStopAtRecordRange), currTime:\(currentAssetProgress.seconds), 录音范围:\(elems[0].1.startCMTime.seconds) - \(elems[0].1.endCMTime.seconds)")
|
|
|
|
|
|
+ BFLog(1, message: "停在了录音区间里 \(isStopAtRecordRange), currTime:\(currentAssetProgress.seconds), 录音范围:\(startTime!.seconds) - \(endTime!.seconds)")
|
|
}
|
|
}
|
|
} else {
|
|
} else {
|
|
deleteRecordBtn.isHidden = false
|
|
deleteRecordBtn.isHidden = false
|
|
recordBtn.isHidden = true
|
|
recordBtn.isHidden = true
|
|
recordBtn.alpha = 0
|
|
recordBtn.alpha = 0
|
|
|
|
|
|
- isStopAtRecordRange = elems.first!.0
|
|
|
|
- BFLog(1, message: "停在了录音区间里 \(isStopAtRecordRange), currTime:\(currentAssetProgress.seconds), 录音范围:\(elems[0].1.startCMTime.seconds) - \(elems[0].1.endCMTime.seconds)")
|
|
|
|
|
|
+ BFLog(1, message: "停在了录音区间里 \(isStopAtRecordRange), currTime:\(currentAssetProgress.seconds), 录音范围:\(startTime!.seconds) - \(endTime!.seconds)")
|
|
}
|
|
}
|
|
|
|
|
|
} else {
|
|
} else {
|