音频无法在适用于 iOS 的 Corona SDK 上运行
Posted
技术标签:
【中文标题】音频无法在适用于 iOS 的 Corona SDK 上运行【英文标题】:Audio Not Working on Corona SDK for iOS 【发布时间】:2013-09-16 00:48:01 【问题描述】:我目前正在使用 Corona SDK 开发一个应用程序,它使用音频 API 来实现音效和背景音乐。音频在模拟器和 android 上运行良好,但是当我在 ios 上测试时,没有播放音频。
为了检查我的代码是否有问题,我尝试了 Corona SDK 中包含的示例“AudioPlayer”应用程序作为示例。同样,音频在模拟器和 Android 上播放良好,但在我测试的两台 iOS 设备(iPad 和 iPad Mini)上,没有听到声音。我仔细检查了设备上的音量并尝试了所有可用的声音格式,但没有任何帮助。您可以在示例代码下的“媒体”文件夹中找到示例应用程序,但这里是实际播放声音的关键部分:
--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)上试了一下,声音很好。但是,我仍然完全不知道是什么导致了其他两个设备上的问题。有人对它可能是什么有任何见解吗?
【问题讨论】:
【参考方案1】:出于兴趣,您使用的是哪些文件类型?尝试在 iOS 上使用 oggs 时遇到问题。和你一样,他们在模拟器和 Android 上工作,但不在 iOS 上。所以我的第一个建议是检查文件类型是否可以在 iOS 上使用。 此外,您是否 100% 确定代码中的文件名没有错误?我遇到过问题,一个平台以某种方式绕过了大写/小写文件名的错误,但另一个平台没有。
【讨论】:
我尝试了示例项目中所有可用的文件类型(“.aac”、“.aif”、“.caf”、“.wav”和“.mp3”),但没有他们玩。示例项目中的大小写似乎也是正确的。不过谢谢!【参考方案2】:Ogg Vorbis 是一种免版税和专利的格式。但是,这在 iOS 上不受支持。
请注意,某些格式(尤其是高度压缩的有损格式,如 mp3、aac、ogg vorbis)可能会在音频样本的末尾填充/删除样本,并可能破坏“完美循环”剪辑。如果您在循环播放中遇到间隙,请尝试使用 WAV 并确保您的导入点和结束点是干净的。
如需进一步说明,请访问:http://developer.coronalabs.com/partner/audionotes
【讨论】:
我尝试了所有可用的声音格式(包括 .wav),因此任何特定的声音格式都不是问题。我没有遇到音频间隙的问题,而是根本无法播放音频。【参考方案3】:我遇到了完全相同的问题。结果确实是大写/小写命名问题。实际文件名是“song.mp3”,在代码中将其称为“Song.mp3”。 Android 不关心这个,但 iOS 关心。另外,我发现有时在我的 windows 环境中,如果我重命名文件只是改变大小写,它并不总是反映它。
【讨论】:
以上是关于音频无法在适用于 iOS 的 Corona SDK 上运行的主要内容,如果未能解决你的问题,请参考以下文章
我正在使用适用于 Agora.io 的 Android SDK 并尝试实现实时音频广播。出现错误
如何使用 Corona SDK 在单个页面上加载超过 32 种声音
如何使用 corona sdk 检查我的应用程序之一是不是安装在 IOS 设备中