Реализованная функция "func playSound(_ soundName: String, timeInterval: Int)" на вход получает данные - название проигрываемого трека и время проигранного трека (реализована остановка по времени 30/60 секунд). Однако не реализована возможность постановки на паузу и воспроизведение с остановленного места трэка.
Реализация проигрывания по времени сдалана через таймер (другого в голову не пришло - возможно можно поменять).
Timer.scheduledTimer(withTimeInterval: TimeInterval(timeLimit), repeats: false) { (timer) in
stop()
}
Весь функционал надо реализовать в файле SoundManager.swift
Изменения пока только в моей ветке.
//SoundManager
import Foundation
import AVFoundation
class SoundManager {
static let shared = SoundManager()
private var player: AVAudioPlayer?
private init() {}
func playSound(_ soundName: String, timeInterval: Int) {
guard let url = Bundle.main.url(forResource: soundName, withExtension: "mp3") else { return }
do {
player = try AVAudioPlayer(contentsOf: url)
let timeLimit = timeInterval
player?.play()
Timer.scheduledTimer(withTimeInterval: TimeInterval(timeLimit), repeats: false) { (timer) in
stop()
}
} catch {
print("Failed to play sound: \(error)")
}
func pause() {
player?.pause()
}
func stop() {
player?.stop()
}
}
Требуется доработать "SoundManager" а именно:
Реализация проигрывания по времени сдалана через таймер (другого в голову не пришло - возможно можно поменять). Timer.scheduledTimer(withTimeInterval: TimeInterval(timeLimit), repeats: false) { (timer) in stop() }
Весь функционал надо реализовать в файле SoundManager.swift Изменения пока только в моей ветке.
//SoundManager
import Foundation import AVFoundation
class SoundManager { static let shared = SoundManager() private var player: AVAudioPlayer?
}