iOS 中无法播放声音 - 不是源代码问题

Posted

技术标签:

【中文标题】iOS 中无法播放声音 - 不是源代码问题【英文标题】:Sound Not Playing In iOS - Not A Source Code Problem 【发布时间】:2010-08-10 11:32:04 【问题描述】:

我想在我的应用程序中播放声音。没什么特别的,只是一个小 WAV 文件。该文件存在于我的主包中的设备中,并且我已经添加了 AVFoundation 和 AudioToolbox 框架。我交替尝试使用它们,测试网络上的每一点示例代码以播放这种声音。它行不通。那么考虑到文件存在并且代码 sn-p 可能不是问题,还有什么可能是错误的?

    与进口有关吗?我在文件顶部为框架导入了必要的 .h 文件。 我注意到其中一种方法要求有一个实现特定协议的委托。这是必要的吗?有些例子需要它,有些则不需要。我需要为此实施什么? 这无法在设备和模拟器上播放声音。我是否忽略了其他问题?

【问题讨论】:

您是否在计算机上播放过声音以确保其正常工作?声音文件只是静音吗?你的音量调低了吗? iPhone 是否处于静音模式? 不,一切都好。声音文件在机器上播放,而 iPad 的音量却大大提高了。我现在只是检查初始化。 audioPlayer 初始化时没有错误,但在我尝试对其进行 toString 时声称其“数据”为 (null)。 您应该在答案中添加配置 AVAudioPlayer 的代码。如果问题不在于文件,它就会存在。 【参考方案1】:
Is it to do with imports? 

没有。导入问题在构建时会很明显。

我注意到其中一种方法 要求有一个代表 实现一个特定的协议。是 这有必要吗?

没有。 AVAudioPlayer 委托是可选的。

这无法同时播放声音 设备和模拟器。我有没有 忽略了其他东西?

最可能的解释是文件没有被正确引用。或者,该文件可能是非标准格式,播放器会默默地窒息它。尝试使用其他文件类型进行测试。

【讨论】:

天哪,一个 mp3 文件有效。我猜 WAV 只是以一种不太好的方式或其他方式编码。血腥无声的窒息。为什么他们不能像其他人一样大声地发出声音!谢谢! 无声的失败是邪恶的。在这种情况下,由于文件的数据块偏移值不正确,播放器很可能将文件解释为空。因为有一个空的数据块并不违法,所以玩家没有抱怨。【参考方案2】:

就我今天而言,mp3 在模拟器上运行良好(在 iTunes 和我测试过的其他地方),但在设备上却不行。我将 mp3 转换为 aif,它在设备上运行良好。

我知道这比答案更值得评论,但我缺乏评论的代表。

【讨论】:

以上是关于iOS 中无法播放声音 - 不是源代码问题的主要内容,如果未能解决你的问题,请参考以下文章

iOS:我的声音文件无法在 PickerViewController 中播放

iOS:静音模式下无法播放我的声音

iOS - 无法在后台播放声音

Soundcloud iOS API - 从链接播放声音

当我按下几个 Jbutton 时,无法播放多个声音

苹果机无法播放声音Audio