我目前正在使用Corona SDK开发一款应用,它使用音频API进行音效和背景音乐。音频在模拟器和Android上运行良好,但是当我在iOS上测试它时,没有播放音频。
为了检查我的代码是否有问题,我尝试了Corona SDK中包含的示例“AudioPlayer”应用程序作为示例。同样,音频在模拟器和Android上播放得很好,但在我测试的两个iOS设备(iPad和iPad Mini)上,没有听到声音。我仔细检查了设备上的音量并尝试了所有可用的声音格式,但没有任何帮助。您可以在示例代码下的“Media”文件夹中找到示例应用程序,但这是实际播放声音的关键部分:
--If we are trying to load a sound, then use loadSound
if supportedAudio[ platform ].extensions[ audioFileSelected ] == loadTypes[ "sound" ].extensions[ audioExtensionSelected ] then
--Load the audio file fully into memory
audioLoaded = audio.loadSound( audioFiles[ audioFileSelected ] .. supportedAudio[ platform ].extensions[ audioExtensionSelected ] )
--Play audio file
audioHandle = audio.play( audioLoaded, { channel = 1, loops = audioLoops, onComplete = resetButtonState } )
else
--Load the audio file in chunks
audioLoaded = audio.loadStream( audioFiles[ audioFileSelected ] .. supportedAudio[ platform ].extensions[ audioExtensionSelected ] )
--Play the audio file
audioHandle = audio.play( audioLoaded, { channel = 1, loops = audioLoops, onComplete = resetButtonState } )
end
这是Corona SDK和/或iOS的错误,还是我做错了什么?当我在Google上搜索这个问题时,我找不到其他似乎有类似问题的人,虽然看起来播放声音似乎不是一件非常罕见的任务。因为据我所知,没有其他人有这个问题,我可能做错了什么,但老实说我不知道它会是什么。其他人可以重现这个问题吗?提前感谢您的帮助!
备注:
iPad运行iOS版本5.1.1,iPad Mini运行iOS版本6.1.2,我使用Corona SDK的最新公开版本(Corona SDK Starter免费提供)。我也尝试过以前公开发布的Corona SDK,但它没有任何区别,所以如果它是一个回归,它不是最近的。
更新
我刚刚在iPod Touch(iOS版本6.1.3)上尝试过,声音效果很好。但是,我仍然完全不知道导致其他两个设备出现问题的原因。任何人对它可能是什么有任何见解?
答案 0 :(得分:0)
出于兴趣,您使用的文件类型是什么?我在iOS上尝试使用oggs时遇到了问题。和你一样,他们在模拟器和Android上工作,但在iOS上却没有。所以我的第一个建议是检查文件类型是否可以在iOS上使用。 另外,您是否100%确定代码中的文件名没有错误?我遇到过一个问题,其中一个平台以某种方式绕过了大写/小写文件名中的错误,但另一个平台却没有。
答案 1 :(得分:0)
Ogg Vorbis是一种免版税且无专利的格式。但是,iOS不支持此功能。
请注意某些格式(特别是高度压缩的有损格式,如mp3,aac,ogg vorbis)可以在音频样本结束时填充/删除样本,并可能破坏“完美循环”剪辑。如果您在循环播放方面遇到空白,请尝试使用WAV并确保您的导入和结束点都是干净的。
如需进一步说明,请访问:http://developer.coronalabs.com/partner/audionotes
答案 2 :(得分:0)
我有完全相同的问题。它确实是大/小写命名问题。实际的文件名是“song.mp3”,在代码中称为“Song.mp3”。 Android并不关心这一点,但iOS确实如此。另外,我发现有时候在我的windows环境中,如果我重命名文件只是改变大小写,它并不总能反映出来。