【发布时间】:2012-03-22 02:32:00
【问题描述】:
我浏览了很多帖子并在我的项目中安装了 libmms 库,但是当我编译我的项目时出现错误。
有没有人有在 iphone 项目中安装 libmms 库的步骤? 有人有调用 libmms 函数的示例代码吗?
谢谢
【问题讨论】:
我浏览了很多帖子并在我的项目中安装了 libmms 库,但是当我编译我的项目时出现错误。
有没有人有在 iphone 项目中安装 libmms 库的步骤? 有人有调用 libmms 函数的示例代码吗?
谢谢
【问题讨论】:
您需要使用 xCode 编译 Libmms 源代码,这将为您提供 Libmms 库。为此,您需要已经为 iPhone 修改过的源代码。
由于 Libmms 是开源的,因此 Internet 上有一些项目包含 Libmms,并且会为您提供您将编译的 iPhone 版本。你可以看看 WunderRadio,因为他们有包含 Libmms 的 xCode 项目。
当我第一次尝试编译 Libmms 时,一件非常重要的事情给我带来了问题,就是将标头放在您的路径或其他地方,并将此路径指向 xCode。如果您使用的是 xCode 4,只需点击 Targets,选择 Build Settings 并搜索 Header Search Paths。并且不要忘记检查 Recursive 选项。
您需要为 iPhone 模拟器编译一个产品版本,为 armv6/armv7 编译另一个产品版本,以便在 iPhone 上运行 Libmms。所以,这是一个两步的过程。为模拟器构建,完成后为 iPhone 构建。
设置完所有内容后,只需构建,不要运行项目。 Products 将是两个已编译的库。只需右键单击每个并选择 在 Finder 中显示,您就会知道 xCode 将它们放在哪里。您必须将这两个库放入您的 xCode 项目中。同样,不要忘记在项目中包含 Libmms 的标头路径,否则当您选择 Run 时,编译器会报错,因为它找不到 Libmms 的标头。
希望对你有帮助。
要建立连接,您必须在应用程序头文件中#include "mmsx.h"。您需要使用 .m 文件中的函数,如下所示:
使用指向 mmsx_connect 的指针,带有以下参数: mmsx_connect (mms_io_t *io, void *data, const char *url,const char *host, const char * uri, const char *query,int port,char *scheme,整数带宽)
要读取文件,请使用 mmsx_read (mms_io_t *io, mmsx_t *instance, char *data, int len);
要关闭连接,请使用 mmsx_close (mmsx_t *instance)。
如果您需要更多功能,只需查看 mmsx.h 即可,其中的功能可以自行解释如何使用它们。
【讨论】:
我猜你会使用 FFmpeg 来解码音频流。但是您知道您也可以使用 FFmpeg 连接到 mms 流吗?
const char *url = "mmst://somemmsurlhere.com";
avformat_open_input(formatCtx, url, NULL, NULL);
只需一行代码,您就可以连接到彩信流。如果通过 tcp 连接失败,您也可以尝试使用 mmsh:// 方案,该方案将尝试连接到端口 80。
连接后,您可以使用 FFmpeg 的 av_read_frame 函数读取 mms 音频包并将音频包传递给 avcodec_decode_audio3 进行解码。 p>
【讨论】: