Skip to content

集成第三方服务遇到的坑 #17

@sauchye

Description

@sauchye

集成科大讯飞语音

  • 由于最近集成科大讯飞服务,遇到一些坑,= =,特此记录一下。
  • 语音合成的是pcm文件,pcmwav
  • 如果需要转换成MP3格式需要借助lame,第二部依然得进行~
+ (NSData *)writeWaveHead:(NSData *)audioData
               sampleRate:(long)sampleRate {
            Byte waveHead[44];
            waveHead[0] = 'R';
            waveHead[1] = 'I';
            waveHead[2] = 'F';
    waveHead[3] = 'F';
        long totalDatalength = [audioData length] + 44;
    waveHead[4] = (Byte)(totalDatalength & 0xff);
    waveHead[5] = (Byte)((totalDatalength >> 8) & 0xff);
    waveHead[6] = (Byte)((totalDatalength >> 16) & 0xff);
    waveHead[7] = (Byte)((totalDatalength >> 24) & 0xff);
    waveHead[8] = 'W';
    waveHead[9] = 'A';
    waveHead[10] = 'V';
    waveHead[11] = 'E';
    waveHead[12] = 'f';
    waveHead[13] = 'm';
    waveHead[14] = 't';
    waveHead[15] = ' ';
    waveHead[16] = 16;
    //size of 'fmt '
    waveHead[17] = 0;     waveHead[18] = 0;     waveHead[19] = 0;          waveHead[20] = 1;
    //format
    waveHead[21] = 0;          waveHead[22] = 1;
    //chanel
    waveHead[23] = 0;
    waveHead[24] = (Byte)(sampleRate & 0xff);
    waveHead[25] = (Byte)((sampleRate >> 8) & 0xff);
    waveHead[26] = (Byte)((sampleRate >> 16) & 0xff);
    waveHead[27] = (Byte)((sampleRate >> 24) & 0xff);
    long byteRate = sampleRate * 2 * (16 >> 3);;
    waveHead[28] = (Byte)(byteRate & 0xff);
    waveHead[29] = (Byte)((byteRate >> 8) & 0xff);
    waveHead[30] = (Byte)((byteRate >> 16) & 0xff);
    waveHead[31] = (Byte)((byteRate >> 24) & 0xff);
    waveHead[32] = 2*(16 >> 3);     waveHead[33] = 0;
    waveHead[34] = 16;     waveHead[35] = 0;
    waveHead[36] = 'd';     waveHead[37] = 'a';
    waveHead[38] = 't';     waveHead[39] = 'a';
    long totalAudiolength = [audioData length];
    waveHead[40] = (Byte)(totalAudiolength & 0xff);
    waveHead[41] = (Byte)((totalAudiolength >> 8) & 0xff);
    waveHead[42] = (Byte)((totalAudiolength >> 16) & 0xff);
    waveHead[43] = (Byte)((totalAudiolength >> 24) & 0xff);
    NSMutableData * pcmData = [[NSMutableData alloc]initWithBytes:&waveHead length:sizeof(waveHead)];
    [pcmData appendData:audioData];

    return pcmData;
}

集成支付宝支付

rsa_private read error : private key is NULL

1解决方法:
1)在RSADataSigner.m文件中 搜索代码 [result appendString:@"-----BEGIN PRIVATE KEY-----\n"]; 将其改成 [result appendString:@"-----BEGIN RSA PRIVATE KEY-----\n"];
2)在RSADataSigner.m文件中 搜索代码 [result appendString:@"\n-----END PRIVATE KEY-----"]; 将其改成 [result appendString:@"\n-----END RSA PRIVATE KEY-----"];

参考:http://blog.csdn.net/vkooy/article/details/47130653

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions