Add iOS AVPlayer voice backend
Some checks failed
iOS and Rust / rust (pull_request) Has been cancelled
iOS and Rust / ios-shell (pull_request) Has been cancelled

This commit is contained in:
Mikhail Kilin
2026-05-21 15:57:23 +03:00
parent c12f9f9b78
commit d48a03f93d

View File

@@ -166,6 +166,28 @@ public protocol VoicePlayback: Sendable {
func seek(to seconds: TimeInterval) async
}
public actor SystemVoicePlayer: VoicePlayback {
private var player: AVPlayer?
public init() {}
public func load(url: URL) async throws {
player = AVPlayer(url: url)
}
public func play() async {
player?.play()
}
public func pause() async {
player?.pause()
}
public func seek(to seconds: TimeInterval) async {
await player?.seek(to: CMTime(seconds: seconds, preferredTimescale: 600))
}
}
public actor RecordingVoicePlayer: VoicePlayback {
public private(set) var loadedURL: URL?
public private(set) var isPlaying = false