Swift AVAudioEngine 无法像 Apple 文档中那样工作

Swift AVAudioEngine not working as in Apple Documentation

提问人:Andy Z 提问时间:10/30/2023 最后编辑:Phil DukhovAndy Z 更新时间:10/30/2023 访问量:42

问:

我正在尝试使用 .AVAudioEngine

我做了一个,它工作正常(最终)。AVAudioPlayer

我现在需要向上移动以提供更多功能,但我无法让它播放即使是一个简单的文件。AVAudioEngine

我完全使用了 Apple 文档中描述的代码

尽管该应用程序构建(目前在 Playgrounds 中)并将所有消息打印到控制台以显示进度,但实际上什么也听不到。

这是我正在使用的代码。大部分来自苹果笔记,但也有一些来自我在网上找到的其他问题。

func azAEngine () {
    let audioFile = try! AVAudioFile(forReading:URL(fileURLWithPath:Bundle.main.path(forResource:"bluesuedeshoes.mp3", ofType:      nil)!)))

    let azURL = URL(fileURLWithPath(Bundle.main.path(forResource:"bluesuedeshoes", ofType: "mp3")!))
    
    print(azURL)     
    let audioEngine = AVAudioEngine()    
    let playerNode = AVAudioPlayerNode()    
    
    // Attach the player node to the audio engine.
    audioEngine.attach(playerNode)
    print("Audioengine attached ")
    // Connect the player node to the output node.
    audioEngine.connect(playerNode,                         
                        to: audioEngine.outputNode, 
                        format: audioFile.processingFormat)
    print("playernode attached")
    playerNode.scheduleFile(audioFile, 
                            at: nil, 
                            completionCallbackType: .dataPlayedBack) { _ in
        print("Done")
        /* Handle any work that's necessary after playback. */
    }
    
    do {
        try audioEngine.start()
        playerNode.play()
        print("playernode here ")
    } catch {
        /* Handle the error. */
        print("Failed")
    }
    print("player started") 
}   
Swift AVFodec AVAudioEngine

评论

0赞 lorem ipsum 10/30/2023
引擎可能不应该在它需要更长寿命的功能(声音的长度)内
0赞 Andy Z 10/30/2023
唉。。。这是一个快速的答案......我对你的承诺感到惊讶。谢谢。我明天会尝试......对不起,我是初学者,但我应该把它放在哪里?我只有两个文件:由 playgrounds 创建的 MyApp 和 ContentView。提前致谢
0赞 lorem ipsum 10/30/2023
在内容视图中
0赞 Andy Z 10/30/2023
布里尔。非常感谢。
0赞 soundflix 10/30/2023
第 2 行和第 4 行中的代码无法编译。第 2 行:删除最后一个括号。第 4 行:用冒号替换参数后的括号并删除最后一个括号。但最好只初始化一次 URL。fileURLWithPath

答: 暂无答案