#ios #swift
#iOS #swift
Вопрос:
Это странное явление происходит, когда я создаю свое приложение на своем iPhone. AVAudioPlayer ничего не делает, когда я пытаюсь воспроизвести файл.
AVPlayer, с другой стороны, отлично воспроизводит файл.
Я хотел бы использовать AVAudioPlayer, поскольку у него есть настройки микширования звука. Тот же AVAudioPlayer может воспроизводить файлы mp3, просто найдите, поэтому я не настроил его неправильно.
работает:
player = AVPlayer(url: m4aFile)
против
не работает:
player = try! AVAudioPlayer.init(contentsOf: m4aFile)
Ответ №1:
В вашем вопросе не хватает информации, но, возможно, вы забываете вызвать prepareToPlay
при использовании AVAudioPlayer
.
Комментарии:
1. нет. это не моя проблема. Я хорошо понимаю, что мне нужно это сделать. Я сказал, что могу загружать mp3-файлы с помощью avaudioplayer, но не файлы m4a. что означает, что, похоже, есть какая-то разница в поддержке формата?
2. AVAudioPlayer должен поддерживать m4a, поскольку он поддерживается Core Audio. Является ли m4aFile локальным файлом? Не могли бы вы добавить немного больше контекста в свой код? Например, откуда берется файл и как вы начинаете воспроизведение.
3. конечно. Я извлекаю файл из каталога documents, определенного в коде:
4. FileManager.default.urls(для: .documentDirectory, в: .userDomainMask)[0]
5. затем я использую содержимое этого каталога, чтобы вернуть все файлы в каталоге и добавить их в массив. попробуйте! FileManager.default.contentsOfDirectory(по адресу: path, includingPropertiesForKeys: nil, options: [])