Я хотел бы воспроизвести звук с помощью Swift.
Мой код работал в Swift 1.0, но теперь он больше не работает в Swift 2 или новее.
override func viewDidLoad() {
super.viewDidLoad()
let url:NSURL = NSBundle.mainBundle().URLForResource("soundName", withExtension: "mp3")!
do {
player = try AVAudioPlayer(contentsOfURL: url, fileTypeHint: nil)
} catch _{
return
}
bgMusic.numberOfLoops = 1
bgMusic.prepareToPlay()
if (Data.backgroundMenuPlayed == 0){
player.play()
Data.backgroundMenuPlayed = 1
}
}
ios
swift
avfoundation
Мишель Кансу
источник
источник
Ответы:
Наиболее предпочтительно вы можете использовать AVFoundation . Он предоставляет все необходимое для работы с аудиовизуальными носителями.
Swift 2.3
Свифт 3
Swift 4 (совместимо с iOS 13)
Для коротких звуковых файлов вы можете использовать несжатые аудиоформаты, например,
.wav
поскольку они имеют наилучшее качество и низкое влияние на процессор. Более высокое потребление дискового пространства не должно иметь большого значения для коротких звуковых файлов. Чем дольше файлы, вы можете пойти на сжатом формате , таком как и.mp3
т.д. стр. Проверьте совместимые форматы аудио изCoreAudio
.Интересный факт: есть аккуратные маленькие библиотеки, которые делают воспроизведение звуков еще проще. :)
Например: SwiftySound
источник
bgMusic = AVAudioPlayer(contentsOfURL: bgMusicURL, fileTypeHint: nil)
наdo { bgMusic = try AVAudioPlayer(contentsOfURL: bgMusicURL, fileTypeHint: nil) } catch _ { return \\ if it doesn't exist, don't play it}
player = try AVAudioPlayer(contentsOf: url) guard let player = player else { return }
кажется мне дополнительной работой, почему бы не простоlet player = try AVAudioPlayer(contentsOf: url)
?Для Swift 3 :
Лучшая практика для локальных ресурсов - поместить их внутрь
assets.xcassets
и загрузить файл следующим образом:источник
do
блоке. очевидно говоритplayer!.play()
само за себя. Но какова цельsetCategory
иsetActive
методы?AVAudioSessionCategoryPlayback
наsetCategory
это гарантирует , что звук всегда играл , даже если телефон находится в заблокированном экране или в автоматическом режиме.setActive
это как сказать системе, что ваше приложение готово к воспроизведению звукаiOS 12 - Xcode 10 beta 6 - Swift 4.2
Используйте только 1 IBAction и наведите все кнопки на это 1 действие.
источник
Если код не генерирует никаких ошибок, но вы не слышите звук - создайте проигрыватель в качестве примера:
Для меня первое решение сработало, когда я сделал это изменение :)
источник
player
внешнюю область. В противном случае, онplayer
становится делокализованным и, следовательно, не может воспроизводить звук, поскольку его больше не существует.static
Свифт 4, 4.2 и 5
Воспроизведение аудио с URL и из вашего проекта (локальный файл)
источник
Свифт 3
источник
Сначала импортируйте эти библиотеки
установить делегат вот так
напишите этот красивый код для действия кнопки или чего-то действия:
100% работает в моем проекте и проверено
источник
AudioToolbox
в этом месте.Протестировано с Swift 4 и iOS 12:
источник
Swift 4 (совместим с iOS 12)
источник
The operation couldn’t be completed. (OSStatus error 1954115647.)
. Я искал везде, и не могу найти решение. Могу опубликовать вопрос об этом.Стиль игры:
файл Sfx.swift
Везде вообще в коде
источник
Это основной код для поиска и воспроизведения аудиофайла в Swift.
Добавьте ваш аудиофайл в ваш Xcode и добавьте код ниже.
источник
источник
работает в Swift 4 последней версии. ButtonTag будет тегом кнопки на вашем интерфейсе. Заметки находятся в папке, расположенной параллельно папке Main.storyboard. Каждая заметка называется note1, note2 и т. Д. ButtonTag дает число 1, 2 и т. Д. От нажатой кнопки, которая передается как параметр
источник
импорт AVFoundation
импортировать AudioToolbox
открытый финальный класс MP3Player: NSObject {
}
// Для вызова этой функции
MP3Player.shared.playLocalFile (имя: "JungleBook")
источник
источник