• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

ios - 游戏运行一段时间后,AVAudioPlayer 返回 nil

[复制链接]
菜鸟教程小白 发表于 2022-12-11 17:15:05 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

我目前正在开发一个小游戏,气球从屏幕底部浮起来,玩家必须在它们到达顶部之前弹出它们。

每个气球对象都包含一个安全设置它的 AVAudioPlayer 的方法:

func setUpAudioPlayerWithFile(file:NSString, type:NSString) -> AVAudioPlayer? {

    let path = NSBundle.mainBundle().pathForResource(file as String, ofType: type as String)
    let url = NSURL.fileURLWithPath(path!)

    var audioPlayer:AVAudioPlayer?

    do {
        try audioPlayer = AVAudioPlayer(contentsOfURL: url)
    }catch {
        print("BALLOON ERROR - AudioPlayer not avaliable.")
    }

    return audioPlayer
}

然后在每个气球的 init() 方法中运行以下代码:

if let popSound = self.setUpAudioPlayerWithFile("opSound", type: "wav") {
        self.popSound = popSound
    }

在游戏开始几分钟之前,这绝对可以正常工作。此时我开始收到“BALLOON ERROR - AudioPlayer not available”。在控制台中,从那时起产生的每个气球都表明我的资源没有被发现?

此时我的 SKEmitterNodes 也开始返回 nil。 (2016-08-13 18:59:54.527 Stop & Pop[256:13785] *** -[NSKeyedUnarchiver initForReadingWithData:]: 数据为 NULL)

是否有任何明显的遗漏可能导致这些错误?

希望我提供了足够的信息,感谢您的阅读。



Best Answer-推荐答案


不...这行不通。您必须将 audioPlayer 变量实例化到 Class Level。

我尝试这样做,在类级别的另一个 ViewController 上实例化了 var audioPlayer。

最好的办法是将此方法本地化到您的 ViewController 中,并将 audioPlayer 放在这里:

class YourClassName : Type {
var audioPlayer : AVAudioPlayer?

yourMethodForCalling() {

}

关于ios - 游戏运行一段时间后,AVAudioPlayer 返回 nil,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38930065/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap