|
@@ -49,7 +49,7 @@ public class BFRecordScreenController: BFBaseViewController {
|
|
|
subtitleBtn.isHidden = isRecording
|
|
|
soundSettingBtn.isHidden = isRecording
|
|
|
|
|
|
- recordBtn.setTitle(isRecording ? "松手 暂停" : "按住 说话", for: .normal)
|
|
|
+ recordBtn.setTitle(isRecording ? "松手 暂停" : "按住 录音", for: .normal)
|
|
|
recordBtn.backgroundColor = UIColor.hexColor(hexadecimal: "#389AFF", alpha: isRecording ? 0.6 : 1)
|
|
|
playBtn.isSelected = isRecording
|
|
|
// if !isRecording {
|
|
@@ -155,7 +155,7 @@ public class BFRecordScreenController: BFBaseViewController {
|
|
|
lazy var recordBtn: UIButton = {
|
|
|
let btn = UIButton(type: .custom)
|
|
|
btn.backgroundColor = ThemeStyleColor
|
|
|
- btn.setTitle("按住 说话", for: .normal)
|
|
|
+ btn.setTitle("按住 录音", for: .normal)
|
|
|
btn.addCorner(corner: 6)
|
|
|
btn.adjustsImageWhenHighlighted = false
|
|
|
btn.addTarget(self, action: #selector(startRecord), for: .touchDown)
|
|
@@ -1306,9 +1306,9 @@ public class BFRecordScreenController: BFBaseViewController {
|
|
|
itemModels.append(itemModel)
|
|
|
if index == 0 {
|
|
|
if asset.mediaType == .video {
|
|
|
- itemModel.fetchAVUrlAsset = { [weak self, weak itemModel] _ in
|
|
|
+ itemModel.fetchAVUrlAssetCallBack = { [weak self, weak itemModel] _ in
|
|
|
// self?.export(avsss:uralss)
|
|
|
- DispatchQueue.main.async { [weak self] in
|
|
|
+ DispatchQueue.main.async { [weak self, weak itemModel] in
|
|
|
self?.progressThumV.recordItem = itemModel
|
|
|
self?.progressThumV.isHidden = false
|
|
|
}
|
|
@@ -1491,13 +1491,15 @@ public class BFRecordScreenController: BFBaseViewController {
|
|
|
}
|
|
|
|
|
|
// 修正视频旋转方向,因为自己录制的竖屏视频会预览为横屏
|
|
|
- func reloadMaterial(recordItem: BFRecordItemModel) {
|
|
|
- if let path = recordItem.localPath, let cell: BFImageCoverViewCell = collectionView.cellForItem(at: IndexPath(item: currItemModelIndex, section: 0)) as? BFImageCoverViewCell {
|
|
|
+ func reloadMaterial() {
|
|
|
+ let recordItem = itemModels[currItemModelIndex]
|
|
|
+ if let vasset = recordItem.videoAsset, let cell: BFImageCoverViewCell = collectionView.cellForItem(at: IndexPath(item: currItemModelIndex, section: 0)) as? BFImageCoverViewCell {
|
|
|
setVideoPlay(item: recordItem.playItem, imageView: cell.playView)
|
|
|
setAudioPlay(item: recordItem.playItem)
|
|
|
playBtn = cell.playBtn
|
|
|
+// recordItem.videoAsset
|
|
|
|
|
|
- let degress = degressFromVideoFile(url: URL(fileURLWithPath: path))
|
|
|
+ let degress = degressFromVideoFile(asset: vasset)
|
|
|
switch degress {
|
|
|
case 90:
|
|
|
cell.playView.setInputRotation(GPUImageRotationMode(rawValue: 2), at: 0)
|
|
@@ -1547,19 +1549,22 @@ extension BFRecordScreenController: UICollectionViewDelegate, UICollectionViewDa
|
|
|
} else {
|
|
|
cell = BFImageCoverViewCell.gpuImageViewCell(collectionView: collectionView, indexPath: indexPath)
|
|
|
}
|
|
|
- recordItem.fetchCoverImg = { [weak self, weak cell] _ in
|
|
|
+ recordItem.fetchCoverImgCallBack = { [weak self, weak cell, weak recordItem] _ in
|
|
|
+ guard let sself = self, let item = recordItem else {
|
|
|
+ return
|
|
|
+ }
|
|
|
cell?.addData()
|
|
|
- if recordItem.mediaType == .IMAGE {
|
|
|
- self?.progressThumV.recordItem = recordItem
|
|
|
- self?.progressThumV.isHidden = false
|
|
|
+ if item.mediaType == .IMAGE {
|
|
|
+ sself.progressThumV.recordItem = item
|
|
|
+ sself.progressThumV.isHidden = false
|
|
|
}
|
|
|
}
|
|
|
- recordItem.fetchPlayItem = { [weak self, weak recordItem] _ in
|
|
|
- guard let item = recordItem else {
|
|
|
+ recordItem.fetchPlayItemCallBack = { [weak self] item in
|
|
|
+ guard let sself = self else {
|
|
|
return
|
|
|
}
|
|
|
- if indexPath.item == self?.currItemModelIndex {
|
|
|
- self?.reloadMaterial(recordItem: item)
|
|
|
+ if indexPath.item == sself.currItemModelIndex {
|
|
|
+ sself.reloadMaterial()
|
|
|
}
|
|
|
}
|
|
|
cell.btnClickHandle = { [weak self] sender, _ in
|
|
@@ -1576,7 +1581,14 @@ extension BFRecordScreenController: UICollectionViewDelegate, UICollectionViewDa
|
|
|
if page != currItemModelIndex {
|
|
|
// 暂停
|
|
|
pause()
|
|
|
- let recordItem = itemModels[page]
|
|
|
+ events.append(WithDrawModel(type: 0, timestamp: currentAssetProgress.seconds))
|
|
|
+ // 重设撤销栈
|
|
|
+ itemModels[currItemModelIndex].events = events
|
|
|
+ currItemModelIndex = page
|
|
|
+
|
|
|
+ events = itemModels[currItemModelIndex].events
|
|
|
+
|
|
|
+ let recordItem = itemModels[currItemModelIndex]
|
|
|
// 重绘录音区域
|
|
|
progressThumV.recordItem = recordItem
|
|
|
DispatchQueue.main.asyncAfter(deadline: .now() + 0.1) {[weak self] in
|
|
@@ -1585,23 +1597,18 @@ extension BFRecordScreenController: UICollectionViewDelegate, UICollectionViewDa
|
|
|
// 更新缩略图
|
|
|
progressThumV.isHidden = false
|
|
|
progreddL.text = "00:00"
|
|
|
- events.append(WithDrawModel(type: 0, timestamp: currentAssetProgress.seconds))
|
|
|
// 重置指针
|
|
|
currentAssetProgress = CMTime(seconds: 0, preferredTimescale: 1000)
|
|
|
searchStopAtRecordRange()
|
|
|
// 重置播放器
|
|
|
assetPlayer?.seek(to: CMTime.zero)
|
|
|
recordPlayer?.seek(to: CMTime.zero)
|
|
|
- // 重设撤销栈
|
|
|
- itemModels[currItemModelIndex].events = events
|
|
|
- events = itemModels[page].events
|
|
|
- currItemModelIndex = page
|
|
|
+
|
|
|
searchStopAtRecordRange()
|
|
|
changeWithDrawBtnLayout(false)
|
|
|
- // 更新当前page
|
|
|
pauseTime = 0
|
|
|
if recordItem.mediaType == .VIDEO {
|
|
|
- reloadMaterial(recordItem: recordItem)
|
|
|
+ reloadMaterial()
|
|
|
assetPlayer?.seek(to: .zero, toleranceBefore: CMTime(value: 1, timescale: 1_000_000), toleranceAfter: CMTime(value: 1, timescale: 1_000_000))
|
|
|
}
|
|
|
if changeItemHandle != nil {
|