gpt4 book ai didi

swift - AVAudioPlayer() 预期声明错误

转载 作者:行者123 更新时间:2023-11-28 10:40:48 25 4
gpt4 key购买 nike

我正在尝试为我的游戏添加背景音乐。我正在使用 AVAudioPlayer() 但我收到“预期声明”错误。为什么会出现此错误,我该如何解决?我查了一下,但范围很广,我找不到我的确切问题。我希望我的代码的上下文会有所帮助:

import SpriteKit
import GameplayKit
import AVFoundation
import UIKit

class GameScene: SKScene {
private var label : SKLabelNode?
private var spinnyNode : SKShapeNode?

var ButtonAudioURL = NSURL(fileURLWithPath: Bundle.main.path(forResource: "HomeSoundtrack", ofType: "m4a")!)
var ButtonAudioPlayer = AVAudioPlayer()
ButtonAudioPlayer = AVAudioPlayer(contentsOfURL: ButtonAudioURL, error: nil)

var gameArea: CGRect?

enum gameState {
case preGame
case inGame
case endGame
}

var currentGameState = gameState.preGame

override init(size:CGSize) {
let maxAspectRatio: CGFloat = 16.0/9.0
let playableWidth = size.height / maxAspectRatio
let margin = (size.width - playableWidth) / 2
gameArea = CGRect(x: margin, y:0, width: playableWidth, height: size.height)

super.init(size: size)
}

required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
}

override func didMove(to view: SKView) {
ButtonAudioPlayer.play()
}

最佳答案

你需要结合这两行:

var ButtonAudioPlayer = AVAudioPlayer()
ButtonAudioPlayer = AVAudioPlayer(contentsOfURL: ButtonAudioURL, error: nil)

成一行:

var ButtonAudioPlayer = AVAudioPlayer(contentsOfURL: ButtonAudioURL, error: nil)

但这仍然行不通,因为您不能拥有两个类属性,其中一个依赖于另一个。

所以现在您需要将该行更改为:

lazy var ButtonAudioPlayer = AVAudioPlayer(contentsOfURL: ButtonAudioURL, error: nil)

但是在 Swift 中 AVAudioPlayer 没有这样的初始化器。你需要它是:

lazy var ButtonAudioPlayer = try! AVAudioPlayer(contentsOfURL: ButtonAudioURL)

请注意,如果 URL 未引用有效的音频文件,这将在运行时崩溃。

此外,在 Swift 中以大写字母开头命名类、结构和枚举是标准的。变量、函数、case等都应该以小写字母开头。

同时避免在 Swift 中使用 NSURL。使用 URL

关于swift - AVAudioPlayer() 预期声明错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50493198/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com