BFAudioSettingView.swift 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153
  1. //
  2. // BFAudioSettingView.swift
  3. // BFRecordScreenKit
  4. //
  5. // Created by ak on 2021/12/15.
  6. // 功能:设置视频素材的音量
  7. import BFCommonKit
  8. import BFMediaKit
  9. import BFUIKit
  10. import Foundation
  11. // 1,原声音量 2,音乐音量
  12. typealias BFAudioSettingViewCallBack = (_ originalVolume: Float, _ musicVolume: Float) -> Void
  13. class BFAudioSettingView: UIView {
  14. var callBack: BFAudioSettingViewCallBack?
  15. // 操作板背景
  16. let backView = UIView()
  17. // 标题
  18. public lazy var originalMLab: UILabel = {
  19. let originalMLab = UILabel()
  20. originalMLab.font = UIFont.boldSystemFont(ofSize: 16)
  21. originalMLab.textAlignment = .left
  22. originalMLab.text = "原声"
  23. originalMLab.textColor = .white
  24. originalMLab.backgroundColor = .clear
  25. return originalMLab
  26. }()
  27. // 有录音
  28. lazy var originalMSlider: BFUISlider = {
  29. let originalMSlider = BFUISlider()
  30. let thbImage = UIImage.moduleImage(named: BFConfig.shared.silderPinUsedImageName, moduleName: "BFFramework", isAssets: false)
  31. originalMSlider.setMinimumTrackImage(thbImage, for: .normal)
  32. originalMSlider.setMaximumTrackImage(thbImage, for: .normal)
  33. originalMSlider.setThumbImage(thbImage, for: .highlighted)
  34. originalMSlider.setThumbImage(thbImage, for: .normal)
  35. originalMSlider.maximumTrackTintColor = UIColor.hexColor(hexadecimal: "#E6E8E8")
  36. originalMSlider.minimumTrackTintColor = UIColor.hexColor(hexadecimal: BFConfig.shared.styleColor.rawValue)
  37. originalMSlider.tag = 10
  38. originalMSlider.unit = "%"
  39. // speechSlidView.addTarget(self, action: #selector(sliderTouchEnded(sender:)), for: .touchUpInside)
  40. originalMSlider.maximumValue = 100
  41. originalMSlider.minimumValue = 0
  42. originalMSlider.isMovePoint = false
  43. originalMSlider.valueTextColor = UIColor.hexColor(hexadecimal: BFConfig.shared.styleColor.rawValue)
  44. originalMSlider.value = 20
  45. originalMSlider.valueChangedHandle = { [weak self] sender in
  46. if self?.callBack != nil {
  47. self?.callBack!(sender.value, self?.musicSlider.value ?? 0)
  48. }
  49. }
  50. return originalMSlider
  51. }()
  52. // 标题
  53. public lazy var musicLab: UILabel = {
  54. let musicLab = UILabel()
  55. musicLab.font = UIFont.boldSystemFont(ofSize: 16)
  56. musicLab.textAlignment = .left
  57. musicLab.text = "音乐"
  58. musicLab.textColor = .white
  59. return musicLab
  60. }()
  61. lazy var musicSlider: BFUISlider = {
  62. let musicSlider = BFUISlider()
  63. let thbImage = UIImage.moduleImage(named: BFConfig.shared.silderPinUsedImageName, moduleName: "BFFramework", isAssets: false)
  64. musicSlider.setMinimumTrackImage(thbImage, for: .normal)
  65. musicSlider.setMaximumTrackImage(thbImage, for: .normal)
  66. musicSlider.setThumbImage(thbImage, for: .highlighted)
  67. musicSlider.setThumbImage(thbImage, for: .normal)
  68. musicSlider.maximumTrackTintColor = UIColor.hexColor(hexadecimal: "#E6E8E8")
  69. musicSlider.minimumTrackTintColor = UIColor.hexColor(hexadecimal: BFConfig.shared.styleColor.rawValue)
  70. musicSlider.tag = 20
  71. musicSlider.isMovePoint = false
  72. // speechSlidView.addTarget(self, action: #selector(sliderTouchEnded(sender:)), for: .touchUpInside)
  73. musicSlider.maximumValue = 100
  74. musicSlider.minimumValue = 0
  75. musicSlider.unit = "%"
  76. musicSlider.valueTextColor = UIColor.hexColor(hexadecimal: BFConfig.shared.styleColor.rawValue)
  77. musicSlider.value = 20
  78. musicSlider.valueChangedHandle = { [weak self] sender in
  79. if self?.callBack != nil {
  80. self?.callBack!(self?.originalMSlider.value ?? 0, sender.value)
  81. }
  82. }
  83. return musicSlider
  84. }()
  85. override init(frame: CGRect) {
  86. super.init(frame: frame)
  87. backgroundColor = UIColor.clear
  88. addGestureRecognizer(UITapGestureRecognizer(target: self, action: #selector(hidden(tap:))))
  89. backView.backgroundColor = .black
  90. addSubview(backView)
  91. backView.snp.makeConstraints { make in
  92. make.right.equalTo(self.snp.right)
  93. make.bottom.equalTo(self.snp.bottom)
  94. make.width.equalTo(cScreenWidth)
  95. make.height.equalTo(220)
  96. }
  97. backView.addSubview(originalMSlider)
  98. backView.addSubview(musicSlider)
  99. backView.addSubview(originalMLab)
  100. backView.addSubview(musicLab)
  101. originalMLab.snp.makeConstraints { make in
  102. make.left.equalToSuperview().offset(16)
  103. make.right.equalToSuperview().offset(-16)
  104. make.top.equalToSuperview().offset(25)
  105. }
  106. originalMSlider.snp.makeConstraints { make in
  107. make.left.equalToSuperview().offset(16)
  108. make.right.equalToSuperview().offset(-16)
  109. make.top.equalTo(originalMLab).offset(24)
  110. }
  111. musicLab.snp.makeConstraints { make in
  112. make.left.equalToSuperview().offset(16)
  113. make.right.equalToSuperview().offset(-16)
  114. make.top.equalTo(originalMSlider).offset(42)
  115. }
  116. musicSlider.snp.makeConstraints { make in
  117. make.left.equalToSuperview().offset(16)
  118. make.right.equalToSuperview().offset(-16)
  119. make.top.equalTo(musicLab).offset(24)
  120. }
  121. }
  122. override func layoutSubviews() {
  123. super.layoutSubviews()
  124. backView.addCorner(roundingCorners: [.topLeft, .topRight], corner: 10)
  125. }
  126. required init?(coder _: NSCoder) {
  127. fatalError("init(coder:) has not been implemented")
  128. }
  129. @objc func hidden(tap: UITapGestureRecognizer) {
  130. if !backView.bounds.contains(tap.location(in: backView)) {
  131. isHidden = true
  132. if callBack != nil {
  133. callBack!(originalMSlider.value, musicSlider.value)
  134. }
  135. }
  136. }
  137. }