首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >SWIFT5.1错误:[plugin] AddInstanceForFactory:没有注册id <CFUUID的工厂

SWIFT5.1错误:[plugin] AddInstanceForFactory:没有注册id <CFUUID的工厂
EN

Stack Overflow用户
提问于 2019-10-13 05:10:00
回答 10查看 47.3K关注 0票数 42

带有以下错误消息的App崩溃

代码语言:javascript
运行
复制
2019-10-12 20:01:34.332334-0700 Awesome App[26368:3535170] [plugin] AddInstanceForFactory: No factory registered for id <CFUUID 0x600002903280> F8BB1C28-BAE8-11D6-9C31-00039315CD46

崩溃时的断点似乎与AVAudioPlayer有关

代码语言:javascript
运行
复制
let path = Bundle.main.path(forResource: "menu_background.mp3", ofType:nil)!
audioPlayer = try AwesomeAudioPlayer(contentsOf: URL(fileURLWithPath: path)) ---> breakpoint
EN

回答 10

Stack Overflow用户

回答已采纳

发布于 2019-10-15 10:21:31

我在另一个关于AVAudioPlayer的堆栈溢出线程中找到了解决方案,如下所示:

如果您将AVAudioPlayer初始化为

var wrongMusicPlayer: AVAudioPlayer = AVAudioPlayer()wrongMusicPlayer = AVAudioPlayer()在任何方法中都请删除,并声明为var wrongMusicPlayer: AVAudioPlayer

票数 1
EN

Stack Overflow用户

发布于 2020-04-09 22:37:28

我相信大家都可能已经将AVFoundation添加到Project选项卡中的框架列表中。

错误代码如下:

代码语言:javascript
运行
复制
import SwiftUI
import AVFoundation

struct PlayerDetailView: View {
@State private var downloadedFilePath: URL = nil
var audioPlayer: AVAudioPlayer
 
var body: some View {

在我将var audioPlayer: AVAudioPlayer声明移到import AVFoundation行之后,它似乎正在工作。

因此,下面的代码在一个SwiftUI 项目中为我工作:

代码语言:javascript
运行
复制
import SwiftUI
import AVFoundation
var audioPlayer: AVAudioPlayer!

struct PlayerDetailView: View {
    @State private var downloadedFilePath: URL = nil

    var body: some View {
        VStack {
            Button("Play the Downloaded Track") {
                if let downloadedPath = self.downloadedFilePath?.path, FileManager().fileExists(atPath: downloadedPath) {
                    do {
                        audioPlayer = try AVAudioPlayer(contentsOf: self.downloadedFilePath!)
                        guard let player = audioPlayer else { return }

                        player.prepareToPlay()
                        player.play()
                    } catch let error {
                        print(error.localizedDescription)
                    }
                } else {
                    print("The file doesn not exist at path || may not have been downloaded yet")
                }
            }
        }
    }
}

我最初是在学习CodeWithChris的这个教程,它的讨论也导致了上面的变化。如果您需要更多的示例,也可以签出以下教程

希望这会对你们中的一些人有所帮助!

干杯!

票数 22
EN

Stack Overflow用户

发布于 2019-12-03 08:10:18

我认为错误信息是对模拟器的警告,因此它并不重要。

我认为您的问题是代码中的一个bug。应该是这样的:

let path = Bundle.main.path(forResource: "menu_background", ofType:"mp3") audioPlayer = try AwesomeAudioPlayer(contentsOf: URL(fileURLWithPath: path!)) ---> breakpoint

其中forResource是文件的名称,ofType是扩展名。您还可以使用Bundle.main.url,它如下所示:

let path = Bundle.main.url(forResource: "menu_background", withExtension:"mp3") audioPlayer = try AwesomeAudioPlayer(contentsOf: URL(fileURLWithPath: path!)) ---> breakpoint

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58360765

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档