mp3 声音在模拟器上播放,但不在设备上播放(音频 BeatBox)

发布于 2024-11-01 08:23:46 字数 516 浏览 2 评论 0原文

我有一个非常严重的问题:

我正在制作一个音频同步 BEATBOX,同时播放 16 种不同的声音。

为了实现 mp3 文件的时间同步,我们放弃了 AVAudioPlayer 并包含以下 AUGraph 方法:

MixerHostAudio.m 和 MixerHostAudio.h

,我从 Apple 的开发人员资源中下载的。

该实现在模拟器上运行良好,但在设备上则不然 加载第四个文件后崩溃...

我们正在加载 kAudioFormatLinearPCM 格式的文件。

我们将其更改为:kAudioFormatMPEGLayer3,

我们认为这将是所需格式的所有 .mp3 文件。

应用程序确实设法加载资源,但我们在 startAUGraph 上遇到错误 方法。

该应用程序没有在设备上崩溃,但它没有播放任何声音,也没有在设备上崩溃,也没有 在模拟器中。

我们尝试将比特率从 32 更改为 16,这似乎有所帮助。 但仍然没有声音..救命!

I Have a really serious Problem on my end:

Im Making an Audio Synchronized BEATBOX with 16 different sounds playing at the same time.

In Order to Implement the TIME-SYNC of the mp3 files we gave up on the
AVAudioPlayer and included the AUGraph Method of:

MixerHostAudio.m
and
MixerHostAudio.h

which I Downloaded at the Developer Resources form Apple.

The Implementation worked fine for the Simulator, but not on Device, which
CRASHED after loading the 4th file...

we Were Loading the Files as kAudioFormatLinearPCM format.

We Changed it to: kAudioFormatMPEGLayer3

being out files all .mp3 we thought that would be the required format.

The APP Did manage to load the Resources, but we got an Error on startAUGraph
method.

The APP Didnt crashed on Device, but it PLAYS NO SOUNDS, nor in Device, nor
in Simulator.

we tried changin the bit Rate from 32 to 16 and it seems to have helped..
but NO SOund Still.. HELP!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

羞稚 2024-11-08 08:23:47

已解决:

显然没有办法将压缩音频文件加载到 iOS 上的 AUGraph 或 AudioBuffer 中,必须转换为 LinearPCM,因此:

每个 500KB 的 29 秒 .mp3 文件在转换后变成了 5 MB 文件至线性PCM。

iPhone 3G 允许每个应用程序使用大约 20 MB RAM 内存,这解释了为什么应用程序在加载第 4 个文件 ( 4 * 5 = 20 :p ) 后崩溃。

理想的解决方案是实现一种仅加载一小部分的缓冲算法。每次(例如 1 秒)文件。

当时这个解决方案有点超出我的理解,因此实际解决方案是为循环加载较短的文件,以使其能够在 3G 和 3GS 设备上加载。 iPhone4 将加载完整的原始循环。

感谢您的所有回复。

埃尔南

SOLVED:

There is Apparently NO WAY to load a Compressed Audio File into the AUGraph or the AudioBuffer on iOS, there HAS to be a conversion to linearPCM, therefore:

the 29 second .mp3 files which were 500KB each turned into 5 MB files when converted to linearPCM.

the iPhone 3G allows about 20 MB of RAM memory for each application, which explains why the APP Crashed after loading the 4th file ( 4 * 5 = 20 :p )

The ideal Solution would be to implement a Buffering Algorithm that loads only a fraction of the file every time (for example, 1 second).

This Solution was a bit over my head at the time, and hence the Actual Solution was loading shorter Files for the Loop to make it able to load on 3G and 3GS Devices. iPhone4 will load the Full Original Loop.

Thanks for all the replies.

Hernan

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文