|
@@ -15,7 +15,7 @@ import Alamofire
|
|
|
class BFMusicManager {
|
|
|
|
|
|
var playStatusCallback : ((AVPlayerItem?, BFMuicInfoCellState) -> Void)?
|
|
|
-
|
|
|
+ var needDeteactiveStatus = false
|
|
|
// 试听音乐
|
|
|
let player:AVPlayer = {
|
|
|
let p = AVPlayer(playerItem: nil)
|
|
@@ -27,7 +27,6 @@ class BFMusicManager {
|
|
|
|
|
|
init() {
|
|
|
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
|
|
|
guard let wself = self else { return }
|
|
@@ -45,17 +44,26 @@ class BFMusicManager {
|
|
|
func 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 }
|
|
|
|
|
|
- if wself.player.rate == 1.0 {
|
|
|
+ if wself.player.currentItem?.isPlaybackLikelyToKeepUp ?? false{
|
|
|
wself.playStatusCallback?(wself.player.currentItem, .playing)
|
|
|
+ }else if (wself.needDeteactiveStatus){
|
|
|
+ BFLog(1, message: "llogpp")
|
|
|
+ wself.deteactiveStaus()
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
func pause() {
|
|
|
player.pause()
|
|
|
+ needDeteactiveStatus = false
|
|
|
playStatusCallback?(player.currentItem, .pause)
|
|
|
}
|
|
|
|