0

我正在从我的服务器接收缓冲区数据;

    len = [inputStream read:buffer maxLength:sizeof(buffer)]; //Getting data from server
    if (len > 0) {
            NSData *audioData = [[NSData alloc]initWithBytes:buffer length:len];
                if (nil != audioData) {


        [[mainSounds alloc]initSounds:audioData];

        }
}

现在我的mainSounds

-(id)initSounds : (NSData *)  audioData{

    NSError *error;
    testAudioPlayer=[[AVAudioPlayer alloc] initWithData:audioData error:&error];
     NSLog(@"Player played %d and error %@",[testAudioPlayer play],[error userInfo]);

    return self;

}

我还播放了一个静态音频文件,它工作正常并且播放声音。给 NSLog -> 播放器播放 1

但是当我尝试我的服务器数据时,它说播放器播放了 0 并且错误 { }

我在 NSLog 中检查来自服务器的 NSData

AUDIO DATA <6f06af08 b209cd09 0a0aed0a 000c870c 6f0c5b0c dc0cc70d 820ec00e cc0e270f f20fd710 5d117b1c 6136013f aa28c112 050d070b 291b1235 812faf14 8e0a050b 18080a>

他们在我的 NSData 中有什么问题吗?

4

1 回答 1

0

尝试使用以下代码

NSString *urlString = [[NSString alloc] initWithData: audioData encoding:NSUTF8StringEncoding];
NSURL *url = [[NSURL alloc] initWithString:urlString];

NSData *finalDATA = [NSData dataWithContentsOfURL:url];
[[mainSounds alloc]initSounds: finalDATA];

在你的initSounds方法中

NSError *error;
testAudioPlayer =[[AVAudioPlayer alloc] initWithData:finalDATA error:&error];
[testAudioPlayer play];
于 2013-09-25T09:43:42.877 回答