|
@@ -127,7 +127,7 @@ public class PQMovieInput: ImageSource {
|
|
|
public var mAutoPause: Bool = false
|
|
|
|
|
|
/// Use serial queue to ensure that the picture is smooth
|
|
|
- public var seekQueue: DispatchQueue!
|
|
|
+// public var seekQueue: DispatchQueue!
|
|
|
|
|
|
// 是否为导出模式
|
|
|
public var mIsExport: Bool = false
|
|
@@ -170,10 +170,10 @@ public class PQMovieInput: ImageSource {
|
|
|
|
|
|
if #available(iOS 10, *){
|
|
|
displayLink?.preferredFramesPerSecond = 30
|
|
|
- seekQueue = DispatchQueue(label: "PQ.MovieInput.seeking", qos: .userInteractive, attributes: .initiallyInactive, autoreleaseFrequency: .never, target: nil)
|
|
|
+// seekQueue = DispatchQueue(label: "PQ.MovieInput.seeking", qos: .userInteractive, attributes: .initiallyInactive, autoreleaseFrequency: .never, target: nil)
|
|
|
}else{
|
|
|
displayLink?.frameInterval = 2
|
|
|
- seekQueue = DispatchQueue(label: "PQ.MovieInput.seeking", qos: .userInteractive, attributes: [], autoreleaseFrequency: .inherit, target: nil)
|
|
|
+// seekQueue = DispatchQueue(label: "PQ.MovieInput.seeking", qos: .userInteractive, attributes: [], autoreleaseFrequency: .inherit, target: nil)
|
|
|
}
|
|
|
// 加入循环 要使用 common 不要让级别高的卡住回调事件
|
|
|
displayLink?.add(to: RunLoop.main, forMode: RunLoop.Mode.common)
|
|
@@ -201,6 +201,7 @@ public class PQMovieInput: ImageSource {
|
|
|
self.audioInputStatusObserver?.invalidate()
|
|
|
self.avPlayerTimeObserver?.invalidate()
|
|
|
|
|
|
+ BFLog(message: "movieinput 销毁")
|
|
|
}
|
|
|
|
|
|
// MARK: -
|
|
@@ -293,11 +294,6 @@ public class PQMovieInput: ImageSource {
|
|
|
}
|
|
|
|
|
|
|
|
|
- }
|
|
|
-// }
|
|
|
-
|
|
|
- if #available(iOS 10.0, *) {
|
|
|
- seekQueue.activate()
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -737,45 +733,5 @@ extension PQMovieInput {
|
|
|
playerItem?.seek(to: playerItem?.reversePlaybackEndTime ?? CMTime(value: 0, timescale: 40))
|
|
|
}
|
|
|
|
|
|
-
|
|
|
-// func playMusic(assetUrl:URL, ranges:[CMTimeRange]){
|
|
|
-// if aplayer != nil {
|
|
|
-// var indexRange = 0
|
|
|
-// var range = ranges.first
|
|
|
-// aplayer?.currentTime = CMTimeGetSeconds(range!.start)
|
|
|
-// aplayer?.play()
|
|
|
-// HHZPrint("声道数:\(aplayer?.numberOfChannels)")
|
|
|
-// return
|
|
|
-//
|
|
|
-//// audioPlayerObserver?.invalidate()
|
|
|
-// audioPlayerObserver = aplayer!.observe(\.deviceCurrentTime, options: [.new], changeHandler: { player, change in
|
|
|
-// let currt = change.newValue ?? 0
|
|
|
-// let end = CMTimeGetSeconds(range?.end ?? CMTime(value: 1, timescale: 100))
|
|
|
-// HHZPrint("curr:\(currt), end:\(end), dur:\(player.duration)")
|
|
|
-// if currt >= end || currt == player.duration {
|
|
|
-// player.pause()
|
|
|
-// indexRange += 1
|
|
|
-// if indexRange < ranges.count{
|
|
|
-// range = ranges[indexRange]
|
|
|
-// player.currentTime = CMTimeGetSeconds(range!.start)
|
|
|
-// player.play()
|
|
|
-// }
|
|
|
-// }
|
|
|
-// })
|
|
|
-// let timer = Timer.scheduledTimer(withTimeInterval: 0.1, repeats: true) { [weak self] timer in
|
|
|
-// HHZPrint("\(self?.aplayer?.currentTime)")
|
|
|
-// }
|
|
|
-// RunLoop.current.add(timer, forMode: .common)
|
|
|
-//
|
|
|
-// }
|
|
|
-//// let queue = DispatchQueue.init(label: "playMusic")
|
|
|
-////
|
|
|
-//// queue.async {
|
|
|
-////
|
|
|
-//// }
|
|
|
-//
|
|
|
-// }
|
|
|
-
|
|
|
-
|
|
|
}
|
|
|
|