removed unwanted bar now with waveforms, major updates and enhancements
This commit is contained in:
@@ -110,6 +110,10 @@ import CoreAudio
|
||||
handoffLoopAudio(at:handoff)
|
||||
return nativeLoopActive
|
||||
}
|
||||
private func replaceLoopAtBoundary(_ buffer: AVAudioPCMBuffer) {
|
||||
// Scheduling must return immediately; awaiting a looping buffer never completes.
|
||||
node.scheduleBuffer(buffer,at:nil,options:[.loops,.interruptsAtLoop],completionHandler:nil)
|
||||
}
|
||||
private func prepareNativeLoop() {
|
||||
loopBufferTask?.cancel()
|
||||
guard loopEnabled,let start = loopIn,let end = loopOut,end > start,let url = audioURL else { return }
|
||||
@@ -154,7 +158,7 @@ import CoreAudio
|
||||
if let pending = self.pendingLoopSwitch,raw >= pending.at { activeRange = pending.range }
|
||||
else { activeRange = self.scheduledLoop ?? start...end }
|
||||
let remaining = max(0,activeRange.upperBound-self.loopPosition(raw))
|
||||
self.node.scheduleBuffer(buffer,at:nil,options:[.loops,.interruptsAtLoop],completionHandler:nil)
|
||||
self.replaceLoopAtBoundary(buffer)
|
||||
self.pendingLoopSwitch = (raw+remaining,start...end,self.preparedRawLoop!)
|
||||
} else if resume {
|
||||
_ = self.activatePreparedLoop()
|
||||
@@ -618,7 +622,7 @@ import CoreAudio
|
||||
graphicsTask = Task.detached(priority:.userInitiated) { [weak self] in
|
||||
var decoded = initial;decoded.render(data,at:seconds,cancelled:{Task.isCancelled})
|
||||
guard !Task.isCancelled else { return };let frame = decoded.image(),finished = decoded
|
||||
await MainActor.run {
|
||||
await MainActor.run { [weak self] in
|
||||
guard let self,self.graphicsGeneration == token else { return }
|
||||
self.decoder = finished;self.lastGraphicsPacket = target;self.image = frame;self.graphicsTask = nil
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user