Iphone 播放由NSData组成的音频

Iphone 播放由NSData组成的音频,iphone,nsdata,Iphone,Nsdata,在获得歌曲的NSData后,我使用此代码播放音频,但未将其转换为NSString..Null正在获得打印 NSString*urlString=[[NSString alloc]initWithData:self.audioSongData encoding:NSASCIIStringEncoding] NSLog(@" url string is %@",urlString); NSURL *url = [[NSURL alloc] initWithString:urlString];

在获得歌曲的NSData后,我使用此代码播放音频,但未将其转换为NSString..Null正在获得打印

NSString*urlString=[[NSString alloc]initWithData:self.audioSongData encoding:NSASCIIStringEncoding]

NSLog(@" url string is   %@",urlString);

NSURL *url = [[NSURL alloc] initWithString:urlString];
NSLog(@" url is %@",url);
NSData *wavDATA = [NSData dataWithContentsOfURL:url];
NSError *error;

avPlayer=[[AVAudioPlayer alloc] initWithData:wavDATA error:&error];
[avPlayer play];

如果数据在internet上,请使用
[NSData dataWithContentsOfURL:url]
不够。您必须执行HTTP请求以获取数据,然后使用AVAudioPlayer播放数据

NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init];
[request setURL:[NSURL URLWithString:urlString]];
[request setHTTPMethod:@"GET"];

NSHTTPURLResponse* urlResponse = nil;
NSError *error = [[NSError alloc] init];
NSData *wavDATA = [NSURLConnection sendSynchronousRequest:request returningResponse:&urlResponse error:&error];
if ([urlResponse statusCode] >= 200 && [urlResponse statusCode] < 300)
{
    avPlayer=[[AVAudioPlayer alloc] initWithData:wavDATA error:&error];
    [avPlayer play];
}
NSMutableURLRequest*request=[[NSMutableURLRequest alloc]init];
[请求设置URL:[NSURL URLWithString:urlString]];
[请求设置HttpMethod:@“获取”];
NSHTTPURLResponse*urlResponse=nil;
NSError*error=[[NSError alloc]init];
NSData*wavDATA=[NSURLConnection sendSynchronousRequest:request returningResponse:&urlResponse错误:&error];
如果([urlResponse statusCode]>=200&&[urlResponse statusCode]<300)
{
avPlayer=[[AVAudioPlayer alloc]initWithData:wavDATA错误:&error];
[avPlayer play];
}
如果使用GET从HTTP页面检索音频数据,那么这应该是您想要的。
请求代码也可以在本文档中找到。希望这有帮助

你假装它在做什么?想播放此NSDATA中的一首歌,你可以用以下方式播放音频:avPlayer=[[AVAudioPlayer alloc]initWithData:self.audioSongData error:&error];[avPlayer play];?