Я не уверен, почему это работает на большинстве устройств iOS, но не на других. Я протестировал его на той же версии iOS 18 и версии iPhone, на которой его видит один из пользователей, но я не могу его воспроизвести.
Вот мой метод воспроизведения звука. Когда они запускают отладочную версию, они видят «Звук был воспроизведен». Итак, я знаю, что он находит файл, никаких исключений не было и звуковой файл был найден. Не знаю, на что обратить внимание дальше.
Звуковые файлы имеют формат mp3 и хранятся в корневом каталоге проекта. Но я не могу себе представить, что проблема в местоположении, иначе я бы увидел распечатанное сообщение «Звуковой файл не найден».
import Foundation
import AVFoundation
import UIKit
public var muteSounds: Bool = false
var audioPlayer:AVAudioPlayer?
struct SoundService {
Код: Выделить всё
func playSound(soundfile: String) -> String{
if (!muteSounds) {
if let path = Bundle.main.path(forResource: soundfile, ofType: nil){
do{
audioPlayer = try AVAudioPlayer(contentsOf: URL(fileURLWithPath: path))
audioPlayer?.prepareToPlay()
audioPlayer?.play()
return "Sound was played"
}catch {
print("Error trying to play sound")
return("Error trying to play sound")
}
} else {
return "Sound File could not be found"
}
} else {
return "Sounds are muted"
}
}
Подробнее здесь: https://stackoverflow.com/questions/790 ... lay-sounds
Мобильная версия