#ios #swiftui #avfoundation #avaudioplayer #xcode11
#iOS #swiftui #avfoundation #avaudioplayer #xcode11
Вопрос:
Как отключить эту ошибку аудиоплеера AVFoundation «AppName [1188: 30594] [плагин] AddInstanceForFactory: на заводе не зарегистрирован идентификатор <CFUUID 0x6000034f1900> F8BB1C28-BAE8-11D6-9C31-00039315CD46» в SwiftUI?
Вот мой метод аудиоплеера
import Foundation
import AVFoundation
var audioPlayer: AVAudioPlayer!
func play(soundName: String, soundType: String){
if let path = Bundle.main.path(forResource: soundName, ofType: soundType){
let url = URL(fileURLWithPath: path)
do {
audioPlayer = try AVAudioPlayer(contentsOf: url)
audioPlayer.volume = 1.0
audioPlayer.prepareToPlay()
audioPlayer.play()
}catch{
print("....Couldn't find the sound....(error.localizedDescription)")
}
}
}
func stopPlaying(){
audioPlayer.stop()
}
Он воспроизводит аудиофайл, но дважды приводил к сбою звуковой системы моего Mac во время воспроизведения звука в симуляторе, и мне пришлось перезагрузить компьютер, и все снова стало нормально. (Xcode 11.6)
ОШИБКА:
"2020-08-19 09:56:28.261745 0600 AppName[1188:30594] [plugin] AddInstanceForFactory: No factory registered for id <CFUUID 0x6000034f1900> F8BB1C28-BAE8-11D6-9C31-00039315CD46"
Нужно решение для исправления этой ошибки!
Комментарии:
1. Я сталкиваюсь с этой проблемой в гораздо более простом сценарии. Mac, вызывающий Obj-C [[NSSound soundNamed:@»Purr»] play]; является ли «Purr» общедоступным системным звуком — будет воспроизводиться один раз и выдаст точно такую же строку журнала — затем не будет воспроизводиться снова. Итак, вопрос НЕ в уровне AVPlayer — он ниже. Возможно, нам следует инициализировать какую-то подсистему, или я-не-знаю-что.
2. Что я действительно имею в виду здесь, так это неправильную формулировку вопроса. Это не ошибка проигрывателя AVFoundation — она исходит из подсистемы более низкого уровня, чем AVFoundation
3. Ну и как нам его отключить?
4. Сообщение носит информационный характер и не связано со сбоем звуковой системы. Сообщение «AddInstanceForFactory: фабрика не зарегистрирована для идентификатора» появляется в приложениях, использующих AVFoundation, во время работы на симуляторе, предположительно потому, что симуляторы не были созданы на заводе. Сообщение не будет отображаться, если приложение запущено на устройстве.