|  | @@ -15,7 +15,7 @@ import Alamofire
 | 
											
												
													
														|  |  class BFMusicManager {
 |  |  class BFMusicManager {
 | 
											
												
													
														|  |      
 |  |      
 | 
											
												
													
														|  |      var playStatusCallback : ((AVPlayerItem?, BFMuicInfoCellState) -> Void)?
 |  |      var playStatusCallback : ((AVPlayerItem?, BFMuicInfoCellState) -> Void)?
 | 
											
												
													
														|  | -    
 |  | 
 | 
											
												
													
														|  | 
 |  | +    var needDeteactiveStatus = false
 | 
											
												
													
														|  |      // 试听音乐
 |  |      // 试听音乐
 | 
											
												
													
														|  |      let player:AVPlayer = {
 |  |      let player:AVPlayer = {
 | 
											
												
													
														|  |          let p = AVPlayer(playerItem: nil)
 |  |          let p = AVPlayer(playerItem: nil)
 | 
											
										
											
												
													
														|  | @@ -27,7 +27,6 @@ class BFMusicManager {
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |      init() {
 |  |      init() {
 | 
											
												
													
														|  |          loadedTimeRangesObserver = player.observe(\AVPlayer.currentItem?.loadedTimeRanges, options: [.new, .initial]) { [weak self] (player, change) in
 |  |          loadedTimeRangesObserver = player.observe(\AVPlayer.currentItem?.loadedTimeRanges, options: [.new, .initial]) { [weak self] (player, change) in
 | 
											
												
													
														|  | -            BFLog(1, message: "status: 0")
 |  | 
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |              DispatchQueue.main.async {[weak self] in
 |  |              DispatchQueue.main.async {[weak self] in
 | 
											
												
													
														|  |                  guard let wself = self else { return }
 |  |                  guard let wself = self else { return }
 | 
											
										
											
												
													
														|  | @@ -45,17 +44,26 @@ class BFMusicManager {
 | 
											
												
													
														|  |      func play() {
 |  |      func play() {
 | 
											
												
													
														|  |          player.play()
 |  |          player.play()
 | 
											
												
													
														|  |          
 |  |          
 | 
											
												
													
														|  | -        DispatchQueue.main.asyncAfter(deadline: .now() + 0.1) { [weak self] in
 |  | 
 | 
											
												
													
														|  | 
 |  | +        needDeteactiveStatus = true
 | 
											
												
													
														|  | 
 |  | +        deteactiveStaus()
 | 
											
												
													
														|  | 
 |  | +    }
 | 
											
												
													
														|  | 
 |  | +    
 | 
											
												
													
														|  | 
 |  | +    func deteactiveStaus() {
 | 
											
												
													
														|  | 
 |  | +        DispatchQueue.global().asyncAfter(deadline: .now() + 0.05) {[weak self] in
 | 
											
												
													
														|  |              guard let wself = self else { return }
 |  |              guard let wself = self else { return }
 | 
											
												
													
														|  |              
 |  |              
 | 
											
												
													
														|  | -            if wself.player.rate == 1.0 {
 |  | 
 | 
											
												
													
														|  | 
 |  | +            if wself.player.currentItem?.isPlaybackLikelyToKeepUp ?? false{
 | 
											
												
													
														|  |                  wself.playStatusCallback?(wself.player.currentItem, .playing)
 |  |                  wself.playStatusCallback?(wself.player.currentItem, .playing)
 | 
											
												
													
														|  | 
 |  | +            }else if (wself.needDeteactiveStatus){
 | 
											
												
													
														|  | 
 |  | +                BFLog(1, message: "llogpp")
 | 
											
												
													
														|  | 
 |  | +                wself.deteactiveStaus()
 | 
											
												
													
														|  |              }
 |  |              }
 | 
											
												
													
														|  |          }
 |  |          }
 | 
											
												
													
														|  |      }
 |  |      }
 | 
											
												
													
														|  |      
 |  |      
 | 
											
												
													
														|  |      func pause() {
 |  |      func pause() {
 | 
											
												
													
														|  |          player.pause()
 |  |          player.pause()
 | 
											
												
													
														|  | 
 |  | +        needDeteactiveStatus = false
 | 
											
												
													
														|  |          playStatusCallback?(player.currentItem, .pause)
 |  |          playStatusCallback?(player.currentItem, .pause)
 | 
											
												
													
														|  |      }
 |  |      }
 | 
											
												
													
														|  |      
 |  |      
 |