使用 libmms 和音频队列

Posted

技术标签:

【中文标题】使用 libmms 和音频队列【英文标题】:Using libmms and audioqueue 【发布时间】:2010-09-14 15:17:46 【问题描述】:

我一直在使用 libmms 和 iPhone,我已经设法连接并从 mms 流中读取,但在此之后,我不知道如何将数据从 mmsx_read 发送到 AudioQueue,我认为它必须使用来自Audio Queue Services 的 AudioQueueNewOutput 方法...我花了很多时间搜索,但找不到任何示例...

我还查看了 WunderRadio 的代码,但发布的代码中只有头文件。

我对 objc 或 c 也不是很熟悉,我都涉猎过,但不认为自己是专家,所以欢迎任何指针/建议。

【问题讨论】:

【参考方案1】:

我对无线电流应用程序也有同样的想法。我可以使用 libmms 库获取 wma 文件。并将其与 ffmpeg 一起使用,我可以转换为 mp3 格式..

【讨论】:

你能帮我做同样的事情吗?我是一名学生,需要为我的项目提交一个可以播放 WMA 流的应用程序。我有 TuneIn Radio 项目的 libmms 库。我不知道从这里继续下去。 嗨@AppAspect,我正在开发一个使用libmms 读取WMA 流并将其转换为mp3 的项目。你所做的就是我正在寻找的。您能否提供一些关于此的指南或示例代码?非常感谢。 我已经使用 libmms 和 ffmpeg,但是有一些内存泄漏,所以无法正常使用。【参考方案2】:

SpeakHere 示例应用程序(带有 developer.apple.com 上的源代码)包含一个很好的示例,该示例使用音频队列通过音频缓冲区进行播放和录制。

如果您知道如何在必要时转换数据类型,以及如何将 PCM 样本从流复制到缓冲区数组,那么您应该很高兴。

Objective C 是 C 的适当超集,因此学习基本的 C 习语,例如它的数据类型以及如何使用短整数数组,总是很有用的。

【讨论】:

谢谢,我去看看,我已经阅读了几本 C 书籍以了解它的最新情况......

以上是关于使用 libmms 和音频队列的主要内容,如果未能解决你的问题,请参考以下文章

多个音频队列的同步

iOS音频播放

使用音频队列或音频单元的 VoIP 功能

使用音频队列框架录制的数据格式

使用音频队列 iOS api 在文件中保存最后 30 秒的音频

当我需要自定义音频效果时,我是不是需要处理音频单元,或者我可以依赖音频队列服务?