音频无法在适用于 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 种声音

适用于 iOs 的 Facebook SDK 无法正常工作

如何使用 corona sdk 检查我的应用程序之一是不是安装在 IOS 设备中

无法在使用我自己的密钥库(corona sdk)签名的 Android 上安装 .apk

适用于 iOS 的 Xamarin facebook sdk 导致应用程序崩溃