gpt4 book ai didi

iphone - AudioToolbox/OpenAL ExtAudioFile 播放压缩音频

转载 作者:可可西里 更新时间:2023-11-01 05:16:09 24 4
gpt4 key购买 nike

我目前正在使用 OpenAL 播放游戏音乐。它工作正常,除了它不适用于原始 WAV 文件之外的任何东西。这意味着我最终得到了大约 9mb 的配乐。

我是 OpenAL 的新手,我直接使用来自 Apple 示例 ( https://developer.apple.com/library/ios/#samplecode/MusicCube/Listings/Classes_MyOpenALSupport_h.html%23//apple_ref/doc/uid/DTS40008978-Classes_MyOpenALSupport_h-DontLinkElementID_9 ) 的代码来获取缓冲区数据。

问题:有没有办法修改这个函数,让它读取压缩音频并即时解码?
我不太担心音频文件格式,只要它可以播放和压缩(如 mp3、aac、caf)即可。我想这样做(显然)的唯一原因是减小文件大小。

编辑: 看来问题不在于 OpenAL,而在于我用来获取缓冲区的方法。 https://developer.apple.com/library/ios/#samplecode/MusicCube/Listings/Classes_MyOpenALSupport_h.html%23//apple_ref/doc/uid/DTS40008978-Classes_MyOpenALSupport_h-DontLinkElementID_9 处的函数使用 AudioFileOpenURLAudioFileReadBytes。有什么方法可以让框架使用 ExtAudioFileOpenURLExtAudioFileRead 为我解码音频?

我在这里试过代码:https://devforums.apple.com/message/10678#10678 ,但我不知道该怎么做。我用来获取缓冲区的函数位于 https://developer.apple.com/library/ios/#samplecode/MusicCube/Listings/Classes_MyOpenALSupport_h.html%23//apple_ref/doc/uid/DTS40008978-Classes_MyOpenALSupport_h-DontLinkElementID_9 ,我还没有真正修改它,所以这就是我需要构建的。

我已经开始悬赏,因为我真的需要这个,希望有人能给我指明正确的方向。

最佳答案

您需要使用音频服务来加载其他格式。请记住,OpenAL 仅支持未压缩的 PCM 数据,因此您加载的任何数据都需要在加载期间解压缩。

这里有一些代码可以加载 iOS 支持的任何格式:https://github.com/kstenerud/ObjectAL-for-iPhone/blob/master/ObjectAL/ObjectAL/Support/OALAudioFile.m

如果你想流式传输压缩音轨类型的音频,请使用 AVAudioPlayer,因为它直接从磁盘播放压缩音频。

关于iphone - AudioToolbox/OpenAL ExtAudioFile 播放压缩音频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6673051/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com