3

我想使用 playSoundFileNamed: 方法将背景声音文件作为循环播放,我照常将其复制到项目中,但问题是,程序停在声音代码行...

SKAction* playSound = [SKAction playSoundFileNamed:@"backgroundMusicLoop.m4a" waitForCompletion:NO];
[self runAction: [SKAction repeatActionForever:playSound]];

它没有发生任何事情(我不是在模拟器中尝试过,而是在真实设备上尝试过)!我尝试播放 wav 文件,没有错误,但是 wav 的文件大小要大得多...

希望有人知道解决方案:)

4

1 回答 1

0

更新

将您的 waitForCompletion 从 NO 更改为 YES。

将其设置为 NO,意味着动作将始终重复自身,而无需等待声音播放结束。实际上,它在一开始就卡住了,没有机会玩完。

(因为我第一次没有看到,所以脑子放屁!)

原来的

m4a 声音格式似乎与playSoundFileNamed:waitForCompletion:. 尝试其他格式,例如 mp3 或 caf。

如果您绝对需要使用 m4a,请使用它AVAudioSession来播放您的声音、音乐。

如果您不知道如何使用 iTunes 转换格式,以下是 Apple 的说明:

以新文件格式保存歌曲副本 从压缩文件格式转换为未压缩文件格式(例如,从 MP3 转换为 AIFF)时,您不会注意到音质有任何降低。但是,在压缩格式(例如 MP3 和 AAC)之间进行转换时,您可能会注意到音质有所下降。为获得最佳效果,如果您希望以不同的文件格式对音乐进行编码,则应使用新的编码格式从原始源再次导入音乐。

转换歌曲的文件格式 打开 iTunes 首选项。Windows:选择“编辑”>“首选项”。Mac:选择 iTunes > 偏好设置。单击“常规”按钮,然后单击窗口下部的“导入设置...”按钮。从“导入使用”弹出式菜单中,选择要将歌曲转换为的编码格式,然后点按“好”以保存设置。在资料库中选择一首或多首歌曲,然后从“文件”>“创建新版本”菜单中,选择以下选项之一(菜单项会更改以显示在“导入”首选项中选择的内容): 创建 MP3 版本 创建 AAC 版本 创建 AIFF 版本 创建 WAV版本创建Apple无损版本如果您还没有将一些歌曲导入iTunes,您可以同时导入和转换它们。这将根据您的 iTunes 偏好在您的 iTunes 资料库中创建文件的转换副本。要转换文件夹或磁盘上的所有歌曲,请按住 Option 键 (Mac) 或 Shift 键 (Windows),然后选择“文件”>“创建新版本”

转换[导入首选项设置]。导入首选项设置将匹配您在步骤 3 中选择的设置。iTunes 将提示您输入要导入和转换的文件夹或磁盘的位置。文件夹或磁盘上的所有歌曲都将被转换。注意:较早购买的歌曲使用受保护的 AAC 格式进行编码,以防止它们被转换。如果您需要将它们转换为另一种格式,请按照本文中的说明进行升级。

原始格式的歌曲和新转换的歌曲出现在您的资料库中。

于 2014-04-30T14:56:29.207 回答