Add iOS AVPlayer voice backend
This commit is contained in:
@@ -166,6 +166,28 @@ public protocol VoicePlayback: Sendable {
|
|||||||
func seek(to seconds: TimeInterval) async
|
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 actor RecordingVoicePlayer: VoicePlayback {
|
||||||
public private(set) var loadedURL: URL?
|
public private(set) var loadedURL: URL?
|
||||||
public private(set) var isPlaying = false
|
public private(set) var isPlaying = false
|
||||||
|
|||||||
Reference in New Issue
Block a user