连接错误:请在IOS上使用libshout重试当前操作shoutcast

问题描述

尝试使用来自github的用于iOS的libshout库连接到SHOUTcast服务器 链接,我发布了适用于Iphone 8仿真器的框架并尝试进行测试,但出现此错误

Warning: Error creating LLDB target at path '/Users/mas/Library/Developer/Xcode/DerivedData/ShoutCast2-gtrwknpcdwrgudfymaufliborewq/Build/Products/Release-iphonesimulator/ShoutCast2.app'- using an empty LLDB target which can cause slow memory reads from remote devices.
-13 is the reply and sucsses = 0
Error connecting: Please retry current operation.

我用于连接以及将mp3发送到流媒体的代码在这里

    shout_t *shout;
int ret;


    shout_init();

    if (!(shout = shout_new())) {
        printf("Could not allocate shout_t\n");
        return;
    }

    if (shout_set_host(shout,"radio.co") != SHOUTERR_SUCCESS) {
        printf("Error setting hostname: %s\n",shout_get_error(shout));
        return;
    }

    if (shout_set_protocol(shout,SHOUT_PROTOCOL_HTTP) != SHOUTERR_SUCCESS) {
        printf("Error setting protocol: %s\n",shout_get_error(shout));
        return;
    }

    if (shout_set_port(shout,1944) != SHOUTERR_SUCCESS) {
        printf("Error setting port: %s\n",shout_get_error(shout));
        return;
    }

    if (shout_set_password(shout,"pass") != SHOUTERR_SUCCESS) {
        printf("Error setting password: %s\n",shout_get_error(shout));
        return;
    }
    if (shout_set_mount(shout,"amr") != SHOUTERR_SUCCESS) {
        printf("Error setting mount: %s\n",shout_get_error(shout));
        return;
    }

    if (shout_set_user(shout,"kamal") != SHOUTERR_SUCCESS) {
        printf("Error setting user: %s\n",shout_get_error(shout));
        return;
    }

    if (shout_set_format(shout,SHOUT_FORMAT_MP3) != SHOUTERR_SUCCESS) {
        printf("Error setting user: %s\n",shout_get_error(shout));
        return;
    }

    if (shout_set_nonblocking(shout,1) != SHOUTERR_SUCCESS) {
      printf("Error setting non-blocking mode: %s\n",shout_get_error(shout));
        return;
    }

    ret = shout_open(shout);
    if (ret == SHOUTERR_SUCCESS)
      ret = SHOUTERR_CONNECTED;

    if (ret == SHOUTERR_BUSY)
      printf("Connection pending...\n");

    while (ret == SHOUTERR_BUSY) {
        printf("Connection busy...");
      usleep(10000);
      ret = shout_get_connected(shout);
    }
printf("%d is the reply and sucsses = %d\n\n",ret,SHOUTERR_SUCCESS);

    if (ret == SHOUTERR_CONNECTED) {
        printf("Connected to server...\n");
        
        NSData *data = [NSData dataWithContentsOfFile:@"song.mp3"];
        NSUInteger length = [data length];
        unsigned char *cdata = (int*)malloc(length);
        [data getBytes:(void*)cdata length:length];
        
        long long total = 0;
        long long size = length;
        while (total < size) {
            unsigned char *buff[4096];
            int read = 0;
            for (int i = 0; i < 4096; i++) {
                if (total == size)
                    break;
                read++;
                buff[i] = cdata[totaL++];
            }
            ret = shout_send(shout,buff,read);
            if (ret != SHOUTERR_SUCCESS) {
                printf("DEBUG: Send error: %s\n",shout_get_error(shout));
                break;
            }
            if (shout_queuelen(shout) > 0)
                printf("DEBUG: queue length: %d\n",(int)shout_queuelen(shout));

            shout_sync(shout);
        }

    } else {
        printf("Error connecting: %s\n",shout_get_error(shout));
    }

    shout_close(shout);

    shout_shutdown();

我已经使用C ++控制台应用程序进行了测试,并且可以正常工作,并且可以轻松流式传输MP3文件,而没有任何问题,那么我在目标C代码中做错了什么,给了我这个错误?我没有要测试的IOS真实设备,因此在整个仿真器中。
预先感谢。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...