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 に答える