123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195 |
- //
- // ASRTRFileView.swift
- // AIPlayRingtones
- //
- // Created by mini on 2025/5/19.
- //
- class ASRTRFileUploadView: ASBaseView {
-
- var clickComplete:(()->Void)?
- var clickPlayComplete:(()->Void)?
- lazy var imageView: UIImageView = {
- let imageView = UIImageView.createImageV(image: .uploadFileIcon)
- return imageView
- }()
-
- lazy var textLab: UILabel = {
- let textLab = UILabel.createLabel(text: "Upload audio files to generate new ringtones".localized ,font: .font(size:14,weight: .regular),textColor: .white,textAlignment: .left)
- return textLab
- }()
-
- lazy var btn: UIButton = {
- let imageView = UIButton.createBtn(image: .uploadFileAdd)
- { [weak self] in
- guard let self = self else { return }
- clickComplete?()
- }
- return imageView
- }()
-
- override func creatUI() {
-
- contentView.addGestureRecognizer(UITapGestureRecognizer(target: self, action: #selector(clickView)))
- contentView.addSubview(imageView)
- imageView.snp.makeConstraints { make in
- make.leading.equalTo(12)
- make.centerY.equalToSuperview()
- make.width.equalTo(80)
- make.height.equalTo(60)
- }
-
- contentView.addSubview(btn)
- btn.snp.makeConstraints { make in
- make.trailing.equalTo(-12)
- make.centerY.equalToSuperview()
- make.width.equalTo(40)
- make.height.equalTo(40)
- }
-
- contentView.addSubview(textLab)
- textLab.snp.makeConstraints { make in
- make.leading.equalTo(imageView.snp.trailing).offset(12)
- make.trailing.equalTo(btn.snp.leading).offset(-12)
- make.centerY.equalToSuperview()
- }
- }
-
- @objc func clickView(){
- clickComplete?()
- }
- }
- class ASRTRFileplayView: ASBaseView {
-
- var clickComplete:(()->Void)?
- var clickPlayComplete:(()->Void)?
- lazy var ringView: ASRingToneCellView = {
- let ringToneView = ASRingToneCellView()
- ringToneView.cornerRadius = 0.0
- ringToneView.setRingBtn.isHidden = true
- ringToneView.editBtn.isHidden = true
- ringToneView.clickPlayHandel = { [weak self] isplay in
- guard let self = self else { return }
- ringView.monitorPlayStateDefaultHandle()
- clickPlayComplete?()
- }
- ringToneView.rightShade.isHidden = true
- ringToneView.bgImageView.isHidden = true
- // ringToneView.selectedBoardImageView.isHidden = true
- ringToneView.timeLab.textColor = .white.withAlphaComponent(0.8)
- ringToneView.nameLab.snp.updateConstraints { make in
- make.top.equalTo(20)
- }
- ringToneView.timeLab.snp.updateConstraints { make in
- make.bottom.equalTo(-20)
- }
-
- ringToneView.progressView.snp.updateConstraints { make in
- make.trailing.equalTo(-60)
- }
- return ringToneView
- }()
-
- lazy var btn: UIButton = {
- let imageView = UIButton.createBtn(image: .uploadFileChange){ [weak self] in
- guard let self = self else { return }
- clickComplete?()
- }
- return imageView
- }()
-
- override func creatUI() {
- contentView.addSubview(ringView)
- ringView.snp.makeConstraints { make in
- make.edges.equalToSuperview()
- }
-
- contentView.addSubview(btn)
- btn.snp.makeConstraints { make in
- make.trailing.equalTo(-12)
- make.centerY.equalToSuperview()
- make.width.equalTo(40)
- make.height.equalTo(40)
- }
-
- }
-
- override func dealThings() {
-
- }
- }
- class ASRTRFileView: ASBaseView {
-
- var clickUpFileComplete:(()->Void)
- var clickPlayComplete:(()->Void)
-
-
- init(clickUpFileComplete: @escaping () -> Void, clickPlayComplete: @escaping () -> Void, filePath: URL? = nil) {
- self.clickUpFileComplete = clickUpFileComplete
- self.clickPlayComplete = clickPlayComplete
- self.filePath = filePath
- super.init(frame: .zero)
- }
-
- @MainActor required init?(coder: NSCoder) {
- fatalError("init(coder:) has not been implemented")
- }
-
-
- var filePath:URL?{
- didSet{
- playView.isHidden = filePath == nil ? true : false
- uploadView.isHidden = !playView.isHidden
-
- if let filePath = filePath {
- if let info = TSBusinessAudioPlayer.getAudioFileInfo(path: filePath.path()){
- playView.ringView.nameLab.text = info.songName
- playView.ringView.timeLab.text = Float(info.durationInSeconds ?? 0).timeMMSS
- }
- }
- }
- }
- lazy var uploadView: ASRTRFileUploadView = {
- let uploadView = ASRTRFileUploadView()
- uploadView.clickComplete = clickUpFileComplete
- return uploadView
- }()
-
- lazy var playView: ASRTRFileplayView = {
- let playView = ASRTRFileplayView()
- playView.isHidden = true
- playView.clickComplete = clickUpFileComplete
- playView.clickPlayComplete = clickPlayComplete
- return playView
- }()
-
- override func creatUI() {
- contentView.snp.remakeConstraints { make in
- make.height.equalTo(84)
- make.edges.equalTo(UIEdgeInsets(top: 0, left: 16, bottom: 0, right: 16))
- }
- contentView.cornerRadius = 16.0
- kAddCommonGradientBg(view: contentView)
- contentView.addSubview(playView)
- contentView.addSubview(uploadView)
-
- playView.snp.makeConstraints { make in
- make.edges.equalToSuperview()
- }
-
- uploadView.snp.makeConstraints { make in
- make.edges.equalToSuperview()
- }
- }
- }
|