|
@@ -29,6 +29,12 @@ class BFMusicSearchController: BFBaseViewController {
|
|
|
|
|
|
var currPage = 1
|
|
|
|
|
|
+ var musicVolume = 0.0 {
|
|
|
+ didSet{
|
|
|
+ slidV.value = Float(musicVolume)
|
|
|
+ uiForChangeVolume()
|
|
|
+ }
|
|
|
+ }
|
|
|
var keywork : String?
|
|
|
|
|
|
// 试听音乐
|
|
@@ -62,6 +68,21 @@ class BFMusicSearchController: BFBaseViewController {
|
|
|
return searchTF
|
|
|
}()
|
|
|
|
|
|
+ lazy var progressL : UILabel = {
|
|
|
+ let l = UILabel()
|
|
|
+ l.textColor = UIColor.hexColor(hexadecimal: "#9d9d9d")
|
|
|
+ l.font = UIFont.systemFont(ofSize: 13, weight: .regular)
|
|
|
+ l.textAlignment = .center
|
|
|
+ l.text = "0%"
|
|
|
+ return l
|
|
|
+ }()
|
|
|
+
|
|
|
+ lazy var slidV : UISlider = {
|
|
|
+ let v = UISlider()
|
|
|
+ v.addTarget(self, action: #selector(valuChange(slid:)), for: .valueChanged)
|
|
|
+ return v
|
|
|
+ }()
|
|
|
+
|
|
|
lazy var musicTb : UITableView = {
|
|
|
let tb = UITableView(frame: .zero)
|
|
|
tb.delegate = self
|
|
@@ -99,10 +120,28 @@ class BFMusicSearchController: BFBaseViewController {
|
|
|
|
|
|
view.addSubview(musicTb)
|
|
|
musicTb.snp.makeConstraints { make in
|
|
|
- make.left.right.bottom.equalToSuperview()
|
|
|
+ make.left.right.equalToSuperview()
|
|
|
make.top.equalTo(searchTF.snp.bottom).offset(4)
|
|
|
+ make.bottom.equalTo(-100)
|
|
|
+ }
|
|
|
+
|
|
|
+ let soundIV = UIImageView(image: imageInRecordScreenKit(by: "soundBtn"))
|
|
|
+ soundIV.contentMode = .scaleAspectFit
|
|
|
+ view.addSubview(soundIV)
|
|
|
+ soundIV.snp.makeConstraints { make in
|
|
|
+ make.left.equalTo(18)
|
|
|
+ make.top.equalTo(musicTb.snp.bottom).offset(36)
|
|
|
+ make.width.height.equalTo(28)
|
|
|
}
|
|
|
|
|
|
+ view.addSubview(slidV)
|
|
|
+ slidV.frame = CGRect(x: 56, y: cScreenHeigth - 59, width: cScreenWidth - 56 - 18, height: 18)
|
|
|
+
|
|
|
+ progressL.frame = CGRect(x: slidV.x - 7, y: slidV.y - 24, width: 36, height: 16)
|
|
|
+ view.addSubview(progressL)
|
|
|
+
|
|
|
+ musicVolume = 0.2
|
|
|
+
|
|
|
loadedTimeRangesObserver = player.observe(\AVPlayer.currentItem?.loadedTimeRanges, options: [.new, .initial]) { [weak self] (player, change) in
|
|
|
|
|
|
DispatchQueue.main.async {[weak self] in
|
|
@@ -133,6 +172,23 @@ class BFMusicSearchController: BFBaseViewController {
|
|
|
@objc func closeAction(){
|
|
|
self.dismiss(animated: true, completion: nil)
|
|
|
}
|
|
|
+
|
|
|
+ @objc func valuChange(slid:UISlider) {
|
|
|
+ musicVolume = Double(slid.value)
|
|
|
+ }
|
|
|
+
|
|
|
+ func uiForChangeVolume() {
|
|
|
+ let num = (Int)(musicVolume * 100)
|
|
|
+
|
|
|
+ progressL.text = String(format: "%d%%", num)
|
|
|
+
|
|
|
+ var frame = progressL.frame
|
|
|
+ frame.origin.x = slidV.x - 7 + ((slidV.width - 28) / 100.0) * CGFloat(num)
|
|
|
+ progressL.frame = frame
|
|
|
+
|
|
|
+ player.volume = Float(musicVolume)
|
|
|
+
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
extension BFMusicSearchController : UITableViewDelegate, UITableViewDataSource {
|
|
@@ -150,6 +206,7 @@ extension BFMusicSearchController : UITableViewDelegate, UITableViewDataSource {
|
|
|
guard let wself = self else { return }
|
|
|
wself.player.pause()
|
|
|
cell?.status = .pause
|
|
|
+ cell?.data?.volume = (Int)(wself.slidV.value * 100.0)
|
|
|
wself.choseAction?(cell?.data)
|
|
|
wself.dismiss(animated: true, completion: nil)
|
|
|
}
|
|
@@ -157,7 +214,8 @@ extension BFMusicSearchController : UITableViewDelegate, UITableViewDataSource {
|
|
|
guard let wself = self else { return }
|
|
|
wself.player.pause()
|
|
|
cell?.status = .pause
|
|
|
-
|
|
|
+ cell?.data?.volume = (Int)(wself.slidV.value * 100.0)
|
|
|
+
|
|
|
if let data = cell?.data {
|
|
|
wself.dismiss(animated: true) {[weak self] in
|
|
|
guard let wself = self else { return }
|