Я пытаюсь замедлить / увеличить скорость воспроизведения музыки с помощью MediaPlayer. Замена .currentPlaybackRate фактически не меняет скорость воспроизведения. Как мне это сделать правильно?
@IBAction func minusTempoButtonTapped(_ sender: Any) {
mediaPlayer.currentPlaybackRate - 0.05
songSpeedPercentage -= 5
speedPercentageLabel.text = "\(songSpeedPercentage)%"
if mediaPlayer.currentPlaybackRate == 0.25 || songSpeedPercentage == 25 {
decreaseSpeedButton.isEnabled = false
}
increaseSpeedButton.isEnabled = true
}
@IBAction func increaseTempoButtonTapped(_ sender: Any) {
mediaPlayer.currentPlaybackRate + 0.05
songSpeedPercentage += 5
speedPercentageLabel.text = "\(songSpeedPercentage)%"
if mediaPlayer.currentPlaybackRate == 2.0 || songSpeedPercentage == 200 {
increaseSpeedButton.isEnabled = false
}
decreaseSpeedButton.isEnabled = true
}
Вы знаете, что на самом деле вы не меняете currentPlaybackRate? Измените - 0.5 на -= 0.5. Сделайте аналогичные изменения для другого.
С моей стороны это была легкая оплошность. Извинения. Но это все еще не решает мою проблему. Я только что это проверил. Ярлык и кнопки работают правильно, но музыка не меняет скорость воспроизведения. Еще совет?
Мне ни разу не удавалось изменить его с помощью медиаплеера.





Этот вопрос не является дубликатом, потому что дублирующийся пост не дает окончательного ответа по коду. Кроме того, используется код более ранней версии Swift. В моем вопросе также используется @IBAction, а не void. Пожалуйста, откройте это снова, чтобы получить ответ. Я не могу разобраться.