removed unwanted bar now with waveforms, major updates and enhancements

This commit is contained in:
Mark Gregory
2026-11-06 15:21:41 +00:00
parent c39c2bd757
commit bb136ee202
15 changed files with 239 additions and 437 deletions
+6 -2
View File
@@ -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
}