ios – 声音资源无法加载Swift SKAction

ios – 声音资源无法加载Swift SKAction,第1张

概述我有一个应用程序,每次触摸屏幕时播放声音文件.出于某种原因,应用程序会偶尔崩溃,并出现以下错误: reason: 'Resource tick.mp3 can not be loaded' 如果您需要它,这里是我每次点击屏幕时播放文件的方式: runAction(SKAction.playSoundFileNamed("tick.mp3", waitForCompletion: false)) 这 我有一个应用程序,每次触摸屏幕时播放声音文件.出于某种原因,应用程序会偶尔崩溃,并出现以下错误:

reason: 'Resource tick.mp3 can not be loaded'

如果您需要它,这里是我每次点击屏幕时播放文件的方式:

runAction(SKAction.playSoundfilenamed("tick.mp3",waitForCompletion: false))

这种情况不会经常发生,可能是应用程序的10次运行中的1次.大多数时候一切都按预期工作.我希望我知道我在做什么导致崩溃,但我不知道!我只是点击它看似没有什么不同于它没有崩溃的时间.然后突然间我得到了这个问题……

@H_301_22@解决方法 首先,看起来你正在使用mp3文件播放(短)音效.使用mp3时,音频会被压缩.在内存中,它将具有不同的,更大的尺寸.还存在解码性能损失(解码花费cpu时间).最重要的是,我在谈论mp3文件的原因可以在 docs找到:

When using harDWare-assisted deCoding,the device can play only a
single instance of one of the supported formats at a time. For
example,if you are playing a stereo MP3 sound using the harDWare
codec,a second simultaneous MP3 sound will use software deCoding.
Similarly,you cannot simultaneously play an AAC and an ALAC sound
using harDWare. If the iPod application is playing an AAC or MP3 sound
in the background,it has claimed the harDWare codec; your application
then plays AAC,ALAC,and MP3 audio using software deCoding.

如您所见,问题是一次只能使用硬件播放一个mp3文件.如果你一次播放多个mp3,它们将被软件解码,这很慢.

所以,我建议你使用.wav或.caf文件来播放声音效果. mp3可能对背景音乐有益.

关于崩溃问题:

>尝试使用.wav或.caf文件而不是.mp3>尝试对SKAction进行强有力的参考,并按照Reece Kenney的建议重复使用.

总结

以上是内存溢出为你收集整理的ios – 声音资源无法加载Swift SKAction全部内容,希望文章能够帮你解决ios – 声音资源无法加载Swift SKAction所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1073905.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-26
下一篇 2022-05-26

发表评论

登录后才能评论

评论列表(0条)

保存