EliseevDmitry / EPIC_RPS

Challenge 1 - Game "Rock paper scissors"
The Unlicense
2 stars 2 forks source link

ПРОБЛЕМА! Есть функция для доработки! #40

Open EliseevDmitry opened 2 months ago

EliseevDmitry commented 2 months ago

Требуется доработать "SoundManager" а именно:

  1. Реализованная функция "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()
    }
}

}

Khabibullokh18022004 commented 2 months ago

Кто до этого занимался звуком?