【问题标题】:How do i use libmms in my iphone project?如何在我的 iphone 项目中使用 libmms?
【发布时间】:2012-03-22 02:32:00
【问题描述】:

我浏览了很多帖子并在我的项目中安装了 libmms 库,但是当我编译我的项目时出现错误。

有没有人有在 iphone 项目中安装 libmms 库的步骤? 有人有调用 libmms 函数的示例代码吗?

谢谢

【问题讨论】:

    标签: iphone libmms


    【解决方案1】:

    您需要使用 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 即可,其中的功能可以自行解释如何使用它们。

    【讨论】:

      【解决方案2】:

      我猜你会使用 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>

      【讨论】:

        猜你喜欢
        • 2011-04-09
        • 2011-05-15
        • 1970-01-01
        • 2011-01-02
        • 1970-01-01
        • 1970-01-01
        • 2021-09-17
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多