我如何在我的iphone项目中使用libmms?

时间:2011-04-01 11:25:16

标签: iphone libmms

我在我的项目中经历了很多帖子并安装了libmms库,但是当我编译项目时我遇到了错误。

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

由于

2 个答案:

答案 0 :(得分:2)

您需要使用xCode编译Libmms源代码,该代码将为您提供Libmms库。为此,您需要已为iPhone修改的源代码。

由于Libmms是开源的,因此Internet上有一些包含Libmms的项目,并且会为您提供将要编译的iPhone版本。你可以看看WunderRadio,因为他们有包含Libmms的xCode项目。

一个非常重要的事情,就是在我第一次尝试编译Libmms时给我带来的问题,就是将标题放在你的Path或其他地方,并将这个路径指向xCode。如果您使用的是xCode 4,只需点击目标,选择构建设置,然后搜索标题搜索路径。并且不要忘记检查递归选项。

您需要为iPhone模拟器编译一个产品版本,为armv6 / armv7编译另一个产品版本,以便在iPhone上运行Libmms。所以,这是一个两步的过程。构建模拟器以及为iPhone完成构建。

只要构建完成所有设置,就不要运行项目。产品将是两个编译库。只需右键单击每个并选择在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, int bandwidth)

要读取文件,请使用mmsx_read(mms_io_t * io,mmsx_t * instance,char * data,int len);

要关闭连接,请使用mmsx_close(mmsx_t * instance)。

如果你需要更多的函数,只需看看mmsx.h,那里的函数就如何使用它们有自己的解释。

答案 1 :(得分:0)

我猜你会使用FFmpeg来解码音频流。但是你知道你也可以使用FFmpeg连接到mms流吗?

const char *url = "mmst://somemmsurlhere.com";
avformat_open_input(formatCtx, url, NULL, NULL);

只需一行代码即可连接到mms流。如果通过tcp连接失败,您也可以尝试使用mmsh://方案,该方案将尝试连接到端口80.

连接后,您可以使用FFmpeg的 av_read_frame 功能,它将读取mms音频数据包并将音频数据包传递给 avcodec_decode_audio3 进行解码。