gpt4 book ai didi

iphone - 将 libmms 与 Objective-C 结合使用

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:22:40 26 4
gpt4 key购买 nike

这几天我一直在互联网上寻找有关如何使用 libmms 的教程或示例。似乎没有,这对于一个似乎被广泛使用的库来说很奇怪。

LibMMS 是一个用于解析 mms://和 mmsh://类型网络流的通用库。 http://sourceforge.net/projects/libmms/files/libmms/0.6.2/libmms-0.6.2.tar.gz/download

我找到的唯一代码示例来自 stackoverflow 上的另一篇文章。

下面会显示哪个是

mms_connect(NULL, NULL, g_tcUrl.av_val, g_hostname.av_val, g_playpath.av_val, "", g_port, 128*1024)

注意:

NSString* strTemp;      
strTemp = @"mms://123.30.49.85/htv2";
// strTemp = @"mms://212.58.251.92/wms/bbc_ami/radio1/radio1_bb_live_int_eq1_sl0";
g_tcUrl.av_val = new char[[strTemp length] + 1];
[strTemp getCString:g_tcUrl.av_val
maxLength:([strTemp length]+1)
encoding:NSUTF8StringEncoding];
g_tcUrl.av_len = strlen(g_tcUrl.av_val);
//strTemp = @"212.58.251.92";
strTemp = @"123.30.49.85";
g_hostname.av_val = new char[[strTemp length]+1];
[strTemp getCString:g_hostname.av_val
maxLength:([strTemp length]+1)
encoding:NSUTF8StringEncoding];
g_hostname.av_len = strlen(g_hostname.av_val);
//strTemp = @"/wms/bbc_ami/radio1/radio1_bb_live_int_eq1_sl0";
strTemp = @"/htv2";
g_playpath.av_val = new char[[strTemp length] + 1];
[strTemp getCString:g_playpath.av_val
maxLength:([strTemp length]+1)
encoding:NSUTF8StringEncoding];
g_playpath.av_len = strlen(g_playpath.av_val);
g_port = 1755;

这不是 Objective-C ,但确实显示了需要传递给 mms_connect 方法的内容。

所以我创建了一个新项目,包括所有需要的 libmms 文件并构建它。编译成功。

下一步是包括

#import "mms.h"
#import "mms_config.h"

并声明

mms_t *mms = 0;

目前没有问题。

接下来我想尝试的是调用 mms_connect 方法,这就是我卡住的地方。

我不是 C 程序员,所以这可能看起来很荒谬,但这是我最好的尝试。我不能使用

char *g_tcUrl = new char[[strTemp length] + 1];

因为 new 在此处使用的方式在 objective-c 中无法识别。我应该使用什么来在 Objective-C 中实现相同的效果?

mms_t *mms = 0;

NSString* strTemp;
strTemp = @"mms://123.30.49.85/htv2";

char *g_tcUrl = new char[[strTemp length] + 1];
[strTemp getCString:g_tcUrl maxLength:([strTemp length]+1)
encoding:NSUTF8StringEncoding];

strTemp = @"123.30.49.85";
char *g_hostname = new char[[strTemp length]+1];
[strTemp getCString:g_hostname maxLength:([strTemp length]+1)
encoding:NSUTF8StringEncoding];

strTemp = @"/htv2";
char * g_playpath = new char[[strTemp length] + 1];
[strTemp getCString:g_playpath maxLength:([strTemp length]+1)
encoding:NSUTF8StringEncoding];
int g_port = 1755;

//mms = mms_connect(mms_io_t *io, void *data, const char *url, const char *host,
const char *uri, const char *query, int port, int bandwidth);
mms = mms_connect(NULL, NULL, g_tcUrl, g_hostname, g_playpath, "", g_port,
128*1024);

现在我正尝试在 objective-c 文件中混合 C 代码。当我尝试和测试并弄清楚如何使用 libmms 时,这些代码都在我的 viewDidLoad 中。

伙计们,在我寻求让 libmms 在我的应用程序中工作的过程中,如果你能提供所有建议和帮助,我将不胜感激。

-代码

最佳答案

您可以在同一个文件中混合使用 C++ 和 Objective-C。给文件一个 .mm 扩展名或将文件类型更改为 sourcecode.cpp.objcpp。

关于iphone - 将 libmms 与 Objective-C 结合使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5634038/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com