SKAction playsoundfilenamed无法加载声音

SKAction playsoundfilenamed无法加载声音

问题描述:

无论我在某个项目中尝试播放哪个wav文件,都会收到相同的错误。错误状态:终止应用程序由于未捕获的异常'NSInvalidArgumentException',原因:'资源namedfile.wav无法加载'SKAction playsoundfilenamed无法加载声音

我无法使用SKAction.playSoundFilenamed加载任何类型的声音。我已经确认该文件的名称是正确的,似乎并不是问题所在。

我曾在几个项目,其中包括了以下测试游戏项目,其中我使用所有默认代码除了一个调用SKAction

class GameScene: SKScene { 
    override func didMoveToView(view: SKView) { 
     /* Setup your scene here */ 
     let myLabel = SKLabelNode(fontNamed:"Chalkduster") 
     myLabel.text = "Hello, World!"; 
     myLabel.fontSize = 65; 
     myLabel.position = CGPoint(x:CGRectGetMidX(self.frame), y:CGRectGetMidY(self.frame)); 
     let soundfile = SKAction.playSoundFileNamed("soundProject.wav", waitForCompletion: false) 
     runAction(soundfile) 
     self.addChild(myLabel) 
    } 

我不能让任何种类的任何声音使用SKAction加载测试这.playSoundFilenamed。我已经检查过,确保文件命名正确,并且它已经在包中退出。任何帮助将不胜感激。谢谢

UPDATE我在不同的计算机上运行我的附加代码,它编译完成并运行。我的xcode /模拟器一定有问题。有谁知道如何重置它?谢谢

+0

看到https://github.com/sc24evr/TestAudioSpriteKit的,给出了一个示例项目我的错误 – sc24evr 2015-03-03 23:50:31

+0

同样的问题对我来说。我在一个项目上工作了数周,突然间加载声音时出现问题。清理或删除派生数据并不能解决问题。 – Domsware 2015-05-27 20:59:32

+0

重新启动计算机为我解决问题。 – Domsware 2015-05-27 21:05:20

当您在XCode中选择声音文件时,请访问右侧的检查器,然后确保为您的目标选择了该文件。

CaptureTarget

+0

我按照提示检查了目标,并选择了正确的项目目标。我认为Xcode知道该文件存在但无法加载它。例如,如果我故意拼错文件名中的代码,我得到一个错误,说该文件没有找到。在这里,我得到一个错误,说资源“无法加载”。 – sc24evr 2015-03-03 18:15:54

+0

该声音是否只播放过一次或别的地方?只是为了确保它在这里崩溃。我试图看看是否有任何限制:声音时间长度,声音文件大小,声音比特率,...你能给我提供这些信息给你的文件吗?或者甚至上传它,所以我可以尝试在我自己的应用程序中播放它。 – lchamp 2015-03-03 18:23:14

+0

我在第二个回复中建议了另一个领导。请看看它,让我知道它是否有帮助。如果没有,请给我更多关于该文件的信息或上传它。 – lchamp 2015-03-03 18:41:59

这里是一个引导,可以帮助你。

有时SKAction对音频文件不太方便。 我还没有找到确切的(可能是:大小文件,声音长度,...)。

在这种情况下,您想要使用AVAudioPlayer而不是它。

为了不写自己的“玩家”,我建议你使用现有的。这是一个我已经使用(SKTAudio):https://github.com/raywenderlich/SKTUtils/blob/master/SKTUtils/SKTAudio.swift

这里是如何使用它:

// For background audio (playing continuously) 
SKTAudio.sharedInstance().playBackgroundMusic("music.wav") // Start the music 
SKTAudio.sharedInstance().pauseBackgroundMusic() // Pause the music 
SKTAudio.sharedInstance().resumeBackgroundMusic() // Resume the music 

// For short sounds 
SKTAudio.sharedInstance().playSoundEffect("sound.wav") // Play the sound once 

请让我知道,如果该文件甚至没有与AVAudioPlayer播放。如果是这样,它可能是一个问题,而不是它玩的方式。

+0

我试过了,仍然无法播放声音。我上传了我在https://github.com/sc24evr/TestingSound1上测试的项目。我仍然收到一个可悲的错误“TestingSound1 [28834:778122] 18:40:39.824错误:168:EXCEPTION抛出('fmt?'):” – sc24evr 2015-03-03 23:43:23

+0

这里是我尝试使用SKAction项目,我不断收到错误。 https://github.com/sc24evr/TestAudioSpriteKit – sc24evr 2015-03-03 23:51:05

我发现了这个问题。我不得不通过系统首选项更改我的Mac上的声音设置。一旦我将所有设置更改为仅使用内置扬声器,问题就解决了。

+0

然后奇怪的问题。很高兴你让它工作:) – lchamp 2015-03-04 06:30:43

+0

雅定义一个奇怪的问题。再次感谢您的所有建议。他们帮助我显着缩小了问题范围。 – sc24evr 2015-03-08 22:40:36

你的声音文件夹是什么颜色的?

如果是蓝色,则表示它是文件夹参考
如果它是黄色的,这是一个

当您导入文件夹时,您选择文件夹引用-vs-组。我发现SKAction。playSoundFilenamed仅当它作为(黄色)加载时才能正常运行。

+0

是,对于 “蓝色” 的文件夹,你将不得不使用建所有的轨迹: '让myBundlePath = Bundle.main.bundlePath \t \t让pathInBundle = myBundlePath + “/” + mediaFolder + “/” + name' – ingconti 2016-08-19 14:31:45

为SWIFT 3.0:

SKAction.run { 
       SKAction.playSoundFileNamed("soundProject.wav", 
       waitForCompletion: false) 
       } 
     } 

当然和验证,如果资源是项目/复制阶段..